// Copyright 2021 IOsetting <iosetting@outlook.com>
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#include "stc8db.h"

#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))

/**
 * info_pos_fosc;
 * baud_switch
 * baud_check
 * flash_erase
 * flash_write
*/
static const stc_protocol_t protocols[] = {
    {
        "STC8G/8H",
        PROTOCOL_STC8GH, 
        1,
        {0x01, 0xFF, 0x40, 0xFF, 0xFF, 0x00, 0x00, 0x97, 0x01}, 
        {0x05, 0x00, 0x00, 0x5A, 0xA5, 0x05}, 
        {0x03, 0x00, 0x00, 0x5A, 0xA5, 0x03}, 
        {0x22, 0xFF, 0xFF, 0x5A, 0xA5, 0x02, 'T'}
    },
    {
        "STC8A/8F",
        PROTOCOL_STC8AF, 
        1,
        {0x01, 0xFF, 0x40, 0xFF, 0xFF, 0x00, 0x00, 0x81, 0x01}, 
        {0x05, 0x00, 0x00, 0x5A, 0xA5, 0x05}, 
        {0x03, 0x00, 0x00, 0x5A, 0xA5, 0x03}, 
        {0x22, 0xFF, 0xFF, 0x5A, 0xA5, 0x02, 'T'}
    },
    {
        "STC15B",
        PROTOCOL_STC15B, 
        8,
        {0x01, 0xFF, 0x40, 0xFF, 0xFF, 0x00, 0x00, 0xC3, 0x01}, 
        {0x05, 0x00, 0x00, 0x5A, 0xA5, 0x05}, 
        {0x03, 0x00, 0x00, 0x5A, 0xA5, 0x03}, 
        {0x22, 0xFF, 0xFF, 0x5A, 0xA5, 0x02, 'T'}
    },
    {
        "STC15",
        PROTOCOL_STC15, 
        8,
        {0x01, 0xFF, 0x40, 0xFF, 0xFF, 0x00, 0x00, 0xC3, 0x01}, 
        {0x05, 0x00, 0x00, 0x5A, 0xA5, 0x05}, 
        {0x03, 0x00, 0x00, 0x5A, 0xA5, 0x03}, 
        {0x22, 0xFF, 0xFF, 0x5A, 0xA5, 0x02, 'T'}
    },
};

static const stc_model_t models[] = {
{"IAP12C5A08"        , 0xD103, PROTOCOL_UNSUPP, 65536,  8192,     0},
{"STC12C5A08X"       , 0xD104, PROTOCOL_UNSUPP, 65536,  8192,     0},
{"IAP12C5A16"        , 0xD107, PROTOCOL_UNSUPP, 65536, 16384,     0},
{"STC12C5A16X"       , 0xD108, PROTOCOL_UNSUPP, 65536, 16384,     0},
{"IAP12C5A32"        , 0xD10F, PROTOCOL_UNSUPP, 65536, 32768,     0},
{"STC12C5A32X"       , 0xD110, PROTOCOL_UNSUPP, 65536, 32768,     0},
{"IAP12C5A40"        , 0xD113, PROTOCOL_UNSUPP, 65536, 40960,     0},
{"STC12C5A40X"       , 0xD114, PROTOCOL_UNSUPP, 65536, 40960,     0},
{"IAP12C5A48"        , 0xD117, PROTOCOL_UNSUPP, 65536, 49152,     0},
{"STC12C5A48X"       , 0xD118, PROTOCOL_UNSUPP, 65536, 49152,     0},
{"IAP12C5A52"        , 0xD119, PROTOCOL_UNSUPP, 65536, 53248,     0},
{"STC12C5A52X"       , 0xD11A, PROTOCOL_UNSUPP, 65536, 53248,     0},
{"IAP12C5A56"        , 0xD11B, PROTOCOL_UNSUPP, 65536, 57344,     0},
{"STC12C5A56X"       , 0xD11C, PROTOCOL_UNSUPP, 65536, 57344,     0},
{"IAP12C5A60"        , 0xD11D, PROTOCOL_UNSUPP, 65536, 61440,     0},
{"STC12C5A60X"       , 0xD11E, PROTOCOL_UNSUPP, 65536, 61440,     0},
{"IAP12C5A62"        , 0xD11F, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"IAP12C5A08CCP"     , 0xD123, PROTOCOL_UNSUPP, 65536,  8192,     0},
{"STC12C5A08CCP"     , 0xD124, PROTOCOL_UNSUPP, 65536,  8192, 55296},
{"IAP12C5A16CCP"     , 0xD127, PROTOCOL_UNSUPP, 65536, 16384,     0},
{"STC12C5A16CCP"     , 0xD128, PROTOCOL_UNSUPP, 65536, 16384, 47104},
{"IAP12C5A32CCP"     , 0xD12F, PROTOCOL_UNSUPP, 65536, 32768,     0},
{"STC12C5A32CCP"     , 0xD130, PROTOCOL_UNSUPP, 65536, 32768, 30720},
{"IAP12C5A40CCP"     , 0xD133, PROTOCOL_UNSUPP, 65536, 40960,     0},
{"STC12C5A40CCP"     , 0xD134, PROTOCOL_UNSUPP, 65536, 40960, 22528},
{"IAP12C5A48CCP"     , 0xD137, PROTOCOL_UNSUPP, 65536, 49152,     0},
{"STC12C5A48CCP"     , 0xD138, PROTOCOL_UNSUPP, 65536, 49152, 14336},
{"IAP12C5A52CCP"     , 0xD139, PROTOCOL_UNSUPP, 65536, 53248,     0},
{"STC12C5A52CCP"     , 0xD13A, PROTOCOL_UNSUPP, 65536, 53248, 10240},
{"IAP12C5A56CCP"     , 0xD13B, PROTOCOL_UNSUPP, 65536, 57344,     0},
{"STC12C5A56CCP"     , 0xD13C, PROTOCOL_UNSUPP, 65536, 57344,  6144},
{"IAP12C5A60CCP"     , 0xD13D, PROTOCOL_UNSUPP, 65536, 61440,     0},
{"STC12C5A60CCP"     , 0xD13E, PROTOCOL_UNSUPP, 65536, 61440,  2048},
{"IAP12C5A62CCP"     , 0xD13F, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"IAP12C5A08AD"      , 0xD143, PROTOCOL_UNSUPP, 65536,  8192,     0},
{"STC12C5A08AD"      , 0xD144, PROTOCOL_UNSUPP, 65536,  8192, 55296},
{"IAP12C5A16AD"      , 0xD147, PROTOCOL_UNSUPP, 65536, 16384,     0},
{"STC12C5A16AD"      , 0xD148, PROTOCOL_UNSUPP, 65536, 16384, 47104},
{"IAP12C5A32AD"      , 0xD14F, PROTOCOL_UNSUPP, 65536, 32768,     0},
{"STC12C5A32AD"      , 0xD150, PROTOCOL_UNSUPP, 65536, 32768, 30720},
{"IAP12C5A40AD"      , 0xD153, PROTOCOL_UNSUPP, 65536, 40960,     0},
{"STC12C5A40AD"      , 0xD154, PROTOCOL_UNSUPP, 65536, 40960, 22528},
{"IAP12C5A48AD"      , 0xD157, PROTOCOL_UNSUPP, 65536, 49152,     0},
{"STC12C5A48AD"      , 0xD158, PROTOCOL_UNSUPP, 65536, 49152, 14336},
{"IAP12C5A52AD"      , 0xD159, PROTOCOL_UNSUPP, 65536, 53248,     0},
{"STC12C5A52AD"      , 0xD15A, PROTOCOL_UNSUPP, 65536, 53248, 10240},
{"IAP12C5A56AD"      , 0xD15B, PROTOCOL_UNSUPP, 65536, 57344,     0},
{"STC12C5A56AD"      , 0xD15C, PROTOCOL_UNSUPP, 65536, 57344,  6144},
{"IAP12C5A60AD"      , 0xD15D, PROTOCOL_UNSUPP, 65536, 61440,     0},
{"STC12C5A60AD"      , 0xD15E, PROTOCOL_UNSUPP, 65536, 61440,  2048},
{"IAP12C5A62AD"      , 0xD15F, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"STC5A08S2-5V"      , 0xD160, PROTOCOL_UNSUPP, 65536,  8192, 55296},
{"STC5A16S2-5V"      , 0xD161, PROTOCOL_UNSUPP, 65536, 16384, 47104},
{"STC5A32S2-5V"      , 0xD162, PROTOCOL_UNSUPP, 65536, 32768, 30720},
{"IAP12C5A08S2"      , 0xD163, PROTOCOL_UNSUPP, 65536,  8192,     0},
{"STC12C5A08S2"      , 0xD164, PROTOCOL_UNSUPP, 65536,  8192, 55296},
{"STC5A40S2-5V"      , 0xD165, PROTOCOL_UNSUPP, 65536, 40960, 22528},
{"STC5A48S2-5V"      , 0xD166, PROTOCOL_UNSUPP, 65536, 49152, 14336},
{"IAP12C5A16S2"      , 0xD167, PROTOCOL_UNSUPP, 65536, 16384,     0},
{"STC12C5A16S2"      , 0xD168, PROTOCOL_UNSUPP, 65536, 16384, 47104},
{"STC5A52S2-5V"      , 0xD169, PROTOCOL_UNSUPP, 65536, 53248, 10240},
{"STC5A56S2-5V"      , 0xD16A, PROTOCOL_UNSUPP, 65536, 57344,  6144},
{"STC5A60S2-5V"      , 0xD16B, PROTOCOL_UNSUPP, 65536, 61440,  2048},
{"IAP5A62S2-5V"      , 0xD16C, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"IAP12C5A32S2"      , 0xD16F, PROTOCOL_UNSUPP, 65536, 32768,     0},
{"STC12C5A32S2"      , 0xD170, PROTOCOL_UNSUPP, 65536, 32768, 30720},
{"IAP12C5A40S2"      , 0xD173, PROTOCOL_UNSUPP, 65536, 40960,     0},
{"STC12C5A40S2"      , 0xD174, PROTOCOL_UNSUPP, 65536, 40960, 22528},
{"IAP12C5A48S2"      , 0xD177, PROTOCOL_UNSUPP, 65536, 49152,     0},
{"STC12C5A48S2"      , 0xD178, PROTOCOL_UNSUPP, 65536, 49152, 14336},
{"IAP12C5A52S2"      , 0xD179, PROTOCOL_UNSUPP, 65536, 53248,     0},
{"STC12C5A52S2"      , 0xD17A, PROTOCOL_UNSUPP, 65536, 53248, 10240},
{"IAP12C5A56S2"      , 0xD17B, PROTOCOL_UNSUPP, 65536, 57344,     0},
{"STC12C5A56S2"      , 0xD17C, PROTOCOL_UNSUPP, 65536, 57344,  6144},
{"IAP12C5A60S2"      , 0xD17D, PROTOCOL_UNSUPP, 65536, 61440,     0},
{"STC12C5A60S2"      , 0xD17E, PROTOCOL_UNSUPP, 65536, 61440,  2048},
{"IAP12C5A62S2"      , 0xD17F, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"IAP12LE5A08"       , 0xD183, PROTOCOL_UNSUPP, 65536,  8192,     0},
{"STC12LE5A08X"      , 0xD184, PROTOCOL_UNSUPP, 65536,  8192,     0},
{"IAP12LE5A16"       , 0xD187, PROTOCOL_UNSUPP, 65536, 16384,     0},
{"STC12LE5A16X"      , 0xD188, PROTOCOL_UNSUPP, 65536, 16384,     0},
{"IAP12LE5A32"       , 0xD18F, PROTOCOL_UNSUPP, 65536, 32768,     0},
{"STC12LE5A32X"      , 0xD190, PROTOCOL_UNSUPP, 65536, 32768,     0},
{"IAP12LE5A40"       , 0xD193, PROTOCOL_UNSUPP, 65536, 40960,     0},
{"STC12LE5A40X"      , 0xD194, PROTOCOL_UNSUPP, 65536, 40960,     0},
{"IAP12LE5A48"       , 0xD197, PROTOCOL_UNSUPP, 65536, 49152,     0},
{"STC12LE5A48X"      , 0xD198, PROTOCOL_UNSUPP, 65536, 49152,     0},
{"IAP12LE5A52"       , 0xD199, PROTOCOL_UNSUPP, 65536, 53248,     0},
{"STC12LE5A52X"      , 0xD19A, PROTOCOL_UNSUPP, 65536, 53248,     0},
{"IAP12LE5A56"       , 0xD19B, PROTOCOL_UNSUPP, 65536, 57344,     0},
{"STC12LE5A56X"      , 0xD19C, PROTOCOL_UNSUPP, 65536, 57344,     0},
{"IAP12LE5A60"       , 0xD19D, PROTOCOL_UNSUPP, 65536, 61440,     0},
{"STC12LE5A60X"      , 0xD19E, PROTOCOL_UNSUPP, 65536, 61440,     0},
{"IAP12LE5A62"       , 0xD19F, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"IAP12LE5A08CCP"    , 0xD1A3, PROTOCOL_UNSUPP, 65536,  8192,     0},
{"STC12LE5A08CCP"    , 0xD1A4, PROTOCOL_UNSUPP, 65536,  8192, 55296},
{"IAP12LE5A16CCP"    , 0xD1A7, PROTOCOL_UNSUPP, 65536, 16384,     0},
{"STC12LE5A16CCP"    , 0xD1A8, PROTOCOL_UNSUPP, 65536, 16384, 47104},
{"IAP12LE5A32CCP"    , 0xD1AF, PROTOCOL_UNSUPP, 65536, 32768,     0},
{"STC12LE5A32CCP"    , 0xD1B0, PROTOCOL_UNSUPP, 65536, 32768, 30720},
{"IAP12LE5A40CCP"    , 0xD1B3, PROTOCOL_UNSUPP, 65536, 40960,     0},
{"STC12LE5A40CCP"    , 0xD1B4, PROTOCOL_UNSUPP, 65536, 40960, 22528},
{"IAP12LE5A48CCP"    , 0xD1B7, PROTOCOL_UNSUPP, 65536, 49152,     0},
{"STC12LE5A48CCP"    , 0xD1B8, PROTOCOL_UNSUPP, 65536, 49152, 14336},
{"IAP12LE5A52CCP"    , 0xD1B9, PROTOCOL_UNSUPP, 65536, 53248,     0},
{"STC12LE5A52CCP"    , 0xD1BA, PROTOCOL_UNSUPP, 65536, 53248, 10240},
{"IAP12LE5A56CCP"    , 0xD1BB, PROTOCOL_UNSUPP, 65536, 57344,     0},
{"STC12LE5A56CCP"    , 0xD1BC, PROTOCOL_UNSUPP, 65536, 57344,  6144},
{"IAP12LE5A60CCP"    , 0xD1BD, PROTOCOL_UNSUPP, 65536, 61440,     0},
{"STC12LE5A60CCP"    , 0xD1BE, PROTOCOL_UNSUPP, 65536, 61440,  2048},
{"IAP12LE5A62CCP"    , 0xD1BF, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"IAP12LE5A08AD"     , 0xD1C3, PROTOCOL_UNSUPP, 65536,  8192,     0},
{"STC12LE5A08AD"     , 0xD1C4, PROTOCOL_UNSUPP, 65536,  8192, 55296},
{"IAP12LE5A16AD"     , 0xD1C7, PROTOCOL_UNSUPP, 65536, 16384,     0},
{"STC12LE5A16AD"     , 0xD1C8, PROTOCOL_UNSUPP, 65536, 16384, 47104},
{"IAP12LE5A32AD"     , 0xD1CF, PROTOCOL_UNSUPP, 65536, 32768,     0},
{"STC12LE5A32AD"     , 0xD1D0, PROTOCOL_UNSUPP, 65536, 32768, 30720},
{"IAP12LE5A40AD"     , 0xD1D3, PROTOCOL_UNSUPP, 65536, 40960,     0},
{"STC12LE5A40AD"     , 0xD1D4, PROTOCOL_UNSUPP, 65536, 40960, 22528},
{"IAP12LE5A48AD"     , 0xD1D7, PROTOCOL_UNSUPP, 65536, 49152,     0},
{"STC12LE5A48AD"     , 0xD1D8, PROTOCOL_UNSUPP, 65536, 49152, 14336},
{"IAP12LE5A52AD"     , 0xD1D9, PROTOCOL_UNSUPP, 65536, 53248,     0},
{"STC12LE5A52AD"     , 0xD1DA, PROTOCOL_UNSUPP, 65536, 53248, 10240},
{"IAP12LE5A56AD"     , 0xD1DB, PROTOCOL_UNSUPP, 65536, 57344,     0},
{"STC12LE5A56AD"     , 0xD1DC, PROTOCOL_UNSUPP, 65536, 57344,  6144},
{"IAP12LE5A60AD"     , 0xD1DD, PROTOCOL_UNSUPP, 65536, 61440,     0},
{"STC12LE5A60AD"     , 0xD1DE, PROTOCOL_UNSUPP, 65536, 61440,  2048},
{"IAP12LE5A62AD"     , 0xD1DF, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"STC5A08S2-3V"      , 0xD1E0, PROTOCOL_UNSUPP, 65536,  8192, 55296},
{"STC5A16S2-3V"      , 0xD1E1, PROTOCOL_UNSUPP, 65536, 16384, 47104},
{"STC5A32S2-3V"      , 0xD1E2, PROTOCOL_UNSUPP, 65536, 32768, 30720},
{"IAP12LE5A08S2"     , 0xD1E3, PROTOCOL_UNSUPP, 65536,  8192,     0},
{"STC12LE5A08S2"     , 0xD1E4, PROTOCOL_UNSUPP, 65536,  8192, 55296},
{"STC5A40S2-3V"      , 0xD1E5, PROTOCOL_UNSUPP, 65536, 40960, 22528},
{"STC5A48S2-3V"      , 0xD1E6, PROTOCOL_UNSUPP, 65536, 49152, 14336},
{"IAP12LE5A16S2"     , 0xD1E7, PROTOCOL_UNSUPP, 65536, 16384,     0},
{"STC12LE5A16S2"     , 0xD1E8, PROTOCOL_UNSUPP, 65536, 16384, 47104},
{"STC5A52S2-3V"      , 0xD1E9, PROTOCOL_UNSUPP, 65536, 53248, 10240},
{"STC5A56S2-3V"      , 0xD1EA, PROTOCOL_UNSUPP, 65536, 57344,  6144},
{"STC5A60S2-3V"      , 0xD1EB, PROTOCOL_UNSUPP, 65536, 61440,  2048},
{"IAP5A62S2-3V"      , 0xD1EC, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"IAP12LE5A32S2"     , 0xD1EF, PROTOCOL_UNSUPP, 65536, 32768,     0},
{"STC12LE5A32S2"     , 0xD1F0, PROTOCOL_UNSUPP, 65536, 32768, 30720},
{"IAP12LE5A40S2"     , 0xD1F3, PROTOCOL_UNSUPP, 65536, 40960,     0},
{"STC12LE5A40S2"     , 0xD1F4, PROTOCOL_UNSUPP, 65536, 40960, 22528},
{"IAP12LE5A48S2"     , 0xD1F7, PROTOCOL_UNSUPP, 65536, 49152,     0},
{"STC12LE5A48S2"     , 0xD1F8, PROTOCOL_UNSUPP, 65536, 49152, 14336},
{"IAP12LE5A52S2"     , 0xD1F9, PROTOCOL_UNSUPP, 65536, 53248,     0},
{"STC12LE5A52S2"     , 0xD1FA, PROTOCOL_UNSUPP, 65536, 53248, 10240},
{"IAP12LE5A56S2"     , 0xD1FB, PROTOCOL_UNSUPP, 65536, 57344,     0},
{"STC12LE5A56S2"     , 0xD1FC, PROTOCOL_UNSUPP, 65536, 57344,  6144},
{"IAP12LE5A60S2"     , 0xD1FD, PROTOCOL_UNSUPP, 65536, 61440,     0},
{"STC12LE5A60S2"     , 0xD1FE, PROTOCOL_UNSUPP, 65536, 61440,  2048},
{"IAP12LE5A62S2"     , 0xD1FF, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"STC10F02"          , 0xD202, PROTOCOL_UNSUPP, 16384,  2048,     0},
{"STC10F04"          , 0xD204, PROTOCOL_UNSUPP, 16384,  4096,     0},
{"STC10F06"          , 0xD206, PROTOCOL_UNSUPP, 16384,  6144,     0},
{"STC10F08"          , 0xD208, PROTOCOL_UNSUPP, 16384,  8192,     0},
{"STC10F10"          , 0xD20A, PROTOCOL_UNSUPP, 16384, 10240,     0},
{"STC10F12"          , 0xD20C, PROTOCOL_UNSUPP, 16384, 12288,     0},
{"IAP10F02"          , 0xD232, PROTOCOL_UNSUPP, 16384,  2048,     0},
{"IAP10F04"          , 0xD234, PROTOCOL_UNSUPP, 16384,  4096,     0},
{"IAP10F06"          , 0xD236, PROTOCOL_UNSUPP, 16384,  6144,     0},
{"IAP10F08"          , 0xD238, PROTOCOL_UNSUPP, 16384,  8192,     0},
{"IAP10F10"          , 0xD23A, PROTOCOL_UNSUPP, 16384, 10240,     0},
{"IAP10F12"          , 0xD23C, PROTOCOL_UNSUPP, 16384, 12288,     0},
{"IAP10F14"          , 0xD23E, PROTOCOL_UNSUPP, 16384, 14336,     0},
{"STC10F02X"         , 0xD242, PROTOCOL_UNSUPP, 16384,  2048,     0},
{"STC10F04X"         , 0xD244, PROTOCOL_UNSUPP, 16384,  4096,     0},
{"STC10F06X"         , 0xD246, PROTOCOL_UNSUPP, 16384,  6144,     0},
{"STC10F08X"         , 0xD248, PROTOCOL_UNSUPP, 16384,  8192,     0},
{"STC10F10X"         , 0xD24A, PROTOCOL_UNSUPP, 16384, 10240,     0},
{"STC10F12X"         , 0xD24C, PROTOCOL_UNSUPP, 16384, 12288,     0},
{"STC02XE-5V"        , 0xD260, PROTOCOL_UNSUPP, 16384,  2048, 12288},
{"STC04XE-5V"        , 0xD261, PROTOCOL_UNSUPP, 16384,  4096, 10240},
{"STC10F02XE"        , 0xD262, PROTOCOL_UNSUPP, 16384,  2048, 12288},
{"STC06XE-5V"        , 0xD263, PROTOCOL_UNSUPP, 16384,  6144,  8192},
{"STC10F04XE"        , 0xD264, PROTOCOL_UNSUPP, 16384,  4096, 10240},
{"STC08XE-5V"        , 0xD265, PROTOCOL_UNSUPP, 16384,  8192,  6144},
{"STC10F06XE"        , 0xD266, PROTOCOL_UNSUPP, 16384,  6144,  8192},
{"STC10XE-5V"        , 0xD267, PROTOCOL_UNSUPP, 16384, 10240,  4096},
{"STC10F08XE"        , 0xD268, PROTOCOL_UNSUPP, 16384,  8192,  6144},
{"STC12XE-5V"        , 0xD269, PROTOCOL_UNSUPP, 16384, 12288,  2048},
{"STC10F10XE"        , 0xD26A, PROTOCOL_UNSUPP, 16384, 10240,  4096},
{"IAP14X-5V"         , 0xD26B, PROTOCOL_UNSUPP, 16384, 14336,     0},
{"STC10F12XE"        , 0xD26C, PROTOCOL_UNSUPP, 16384, 12288,  2048},
{"IAP10F02XE"        , 0xD272, PROTOCOL_UNSUPP, 16384,  2048,     0},
{"IAP10F04XE"        , 0xD274, PROTOCOL_UNSUPP, 16384,  4096,     0},
{"IAP10F06XE"        , 0xD276, PROTOCOL_UNSUPP, 16384,  6144,     0},
{"IAP10F08XE"        , 0xD278, PROTOCOL_UNSUPP, 16384,  8192,     0},
{"IAP10F10XE"        , 0xD27A, PROTOCOL_UNSUPP, 16384, 10240,     0},
{"IAP10F12XE"        , 0xD27C, PROTOCOL_UNSUPP, 16384, 12288,     0},
{"IAP10F14X"         , 0xD27E, PROTOCOL_UNSUPP, 16384, 14336,     0},
{"STC10L02"          , 0xD282, PROTOCOL_UNSUPP, 16384,  2048,     0},
{"STC10L04"          , 0xD284, PROTOCOL_UNSUPP, 16384,  4096,     0},
{"STC10L06"          , 0xD286, PROTOCOL_UNSUPP, 16384,  6144,     0},
{"STC10L08"          , 0xD288, PROTOCOL_UNSUPP, 16384,  8192,     0},
{"STC10L10"          , 0xD28A, PROTOCOL_UNSUPP, 16384, 10240,     0},
{"STC10L12"          , 0xD28C, PROTOCOL_UNSUPP, 16384, 12288,     0},
{"IAP10L02"          , 0xD2B2, PROTOCOL_UNSUPP, 16384,  2048,     0},
{"IAP10L04"          , 0xD2B4, PROTOCOL_UNSUPP, 16384,  4096,     0},
{"IAP10L06"          , 0xD2B6, PROTOCOL_UNSUPP, 16384,  6144,     0},
{"IAP10L08"          , 0xD2B8, PROTOCOL_UNSUPP, 16384,  8192,     0},
{"IAP10L10"          , 0xD2BA, PROTOCOL_UNSUPP, 16384, 10240,     0},
{"IAP10L12"          , 0xD2BC, PROTOCOL_UNSUPP, 16384, 12288,     0},
{"IAP10L14"          , 0xD2BE, PROTOCOL_UNSUPP, 16384, 14336,     0},
{"STC10L02X"         , 0xD2C2, PROTOCOL_UNSUPP, 16384,  2048,     0},
{"STC10L04X"         , 0xD2C4, PROTOCOL_UNSUPP, 16384,  4096,     0},
{"STC10L06X"         , 0xD2C6, PROTOCOL_UNSUPP, 16384,  6144,     0},
{"STC10L08X"         , 0xD2C8, PROTOCOL_UNSUPP, 16384,  8192,     0},
{"STC10L10X"         , 0xD2CA, PROTOCOL_UNSUPP, 16384, 10240,     0},
{"STC10L12X"         , 0xD2CC, PROTOCOL_UNSUPP, 16384, 12288,     0},
{"STC02XE-3V"        , 0xD2E0, PROTOCOL_UNSUPP, 16384,  2048, 12288},
{"STC04XE-3V"        , 0xD2E1, PROTOCOL_UNSUPP, 16384,  4096, 10240},
{"STC10L02XE"        , 0xD2E2, PROTOCOL_UNSUPP, 16384,  2048, 12288},
{"STC06XE-3V"        , 0xD2E3, PROTOCOL_UNSUPP, 16384,  6144,  8192},
{"STC10L04XE"        , 0xD2E4, PROTOCOL_UNSUPP, 16384,  4096, 10240},
{"STC08XE-3V"        , 0xD2E5, PROTOCOL_UNSUPP, 16384,  8192,  6144},
{"STC10L06XE"        , 0xD2E6, PROTOCOL_UNSUPP, 16384,  6144,  8192},
{"STC10XE-3V"        , 0xD2E7, PROTOCOL_UNSUPP, 16384, 10240,  4096},
{"STC10L08XE"        , 0xD2E8, PROTOCOL_UNSUPP, 16384,  8192,  6144},
{"STC12XE-3V"        , 0xD2E9, PROTOCOL_UNSUPP, 16384, 12288,  2048},
{"STC10L10XE"        , 0xD2EA, PROTOCOL_UNSUPP, 16384, 10240,  4096},
{"IAP14X-3V"         , 0xD2EB, PROTOCOL_UNSUPP, 16384, 14336,     0},
{"STC10L12XE"        , 0xD2EC, PROTOCOL_UNSUPP, 16384, 12288,  2048},
{"IAP10L02XE"        , 0xD2F2, PROTOCOL_UNSUPP, 16384,  2048,     0},
{"IAP10L04XE"        , 0xD2F4, PROTOCOL_UNSUPP, 16384,  4096,     0},
{"IAP10L06XE"        , 0xD2F6, PROTOCOL_UNSUPP, 16384,  6144,     0},
{"IAP10L08XE"        , 0xD2F8, PROTOCOL_UNSUPP, 16384,  8192,     0},
{"IAP10L10XE"        , 0xD2FA, PROTOCOL_UNSUPP, 16384, 10240,     0},
{"IAP10L12XE"        , 0xD2FC, PROTOCOL_UNSUPP, 16384, 12288,     0},
{"IAP10L14X"         , 0xD2FE, PROTOCOL_UNSUPP, 16384, 14336,     0},
{"IAP11F08"          , 0xD303, PROTOCOL_UNSUPP, 65536,  8192,     0},
{"STC11F08"          , 0xD304, PROTOCOL_UNSUPP, 65536,  8192,     0},
{"IAP11F16"          , 0xD307, PROTOCOL_UNSUPP, 65536, 16384,     0},
{"STC11F16"          , 0xD308, PROTOCOL_UNSUPP, 65536, 16384,     0},
{"IAP11F20"          , 0xD309, PROTOCOL_UNSUPP, 65536, 20480,     0},
{"STC11F20"          , 0xD30A, PROTOCOL_UNSUPP, 65536, 20480,     0},
{"IAP11F32"          , 0xD30F, PROTOCOL_UNSUPP, 65536, 32768,     0},
{"STC11F32"          , 0xD310, PROTOCOL_UNSUPP, 65536, 32768,     0},
{"IAP11F40"          , 0xD313, PROTOCOL_UNSUPP, 65536, 40960,     0},
{"STC11F40"          , 0xD314, PROTOCOL_UNSUPP, 65536, 40960,     0},
{"IAP11F48"          , 0xD317, PROTOCOL_UNSUPP, 65536, 49152,     0},
{"STC11F48"          , 0xD318, PROTOCOL_UNSUPP, 65536, 49152,     0},
{"IAP11F52"          , 0xD319, PROTOCOL_UNSUPP, 65536, 53248,     0},
{"STC11F52"          , 0xD31A, PROTOCOL_UNSUPP, 65536, 53248,     0},
{"IAP11F56"          , 0xD31B, PROTOCOL_UNSUPP, 65536, 57344,     0},
{"STC11F56"          , 0xD31C, PROTOCOL_UNSUPP, 65536, 57344,     0},
{"IAP11F60"          , 0xD31D, PROTOCOL_UNSUPP, 65536, 61440,     0},
{"STC11F60"          , 0xD31E, PROTOCOL_UNSUPP, 65536, 61440,     0},
{"IAP11F62"          , 0xD31F, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"IAP11F08X"         , 0xD343, PROTOCOL_UNSUPP, 65536,  8192,     0},
{"STC11F08X"         , 0xD344, PROTOCOL_UNSUPP, 65536,  8192,     0},
{"IAP11F16X"         , 0xD347, PROTOCOL_UNSUPP, 65536, 16384,     0},
{"STC11F16X"         , 0xD348, PROTOCOL_UNSUPP, 65536, 16384,     0},
{"IAP11F20X"         , 0xD349, PROTOCOL_UNSUPP, 65536, 20480,     0},
{"STC11F20X"         , 0xD34A, PROTOCOL_UNSUPP, 65536, 20480,     0},
{"IAP11F32X"         , 0xD34F, PROTOCOL_UNSUPP, 65536, 32768,     0},
{"STC11F32X"         , 0xD350, PROTOCOL_UNSUPP, 65536, 32768,     0},
{"IAP11F40X"         , 0xD353, PROTOCOL_UNSUPP, 65536, 40960,     0},
{"STC11F40X"         , 0xD354, PROTOCOL_UNSUPP, 65536, 40960,     0},
{"IAP11F48X"         , 0xD357, PROTOCOL_UNSUPP, 65536, 49152,     0},
{"STC11F48X"         , 0xD358, PROTOCOL_UNSUPP, 65536, 49152,     0},
{"IAP11F52X"         , 0xD359, PROTOCOL_UNSUPP, 65536, 53248,     0},
{"STC11F52X"         , 0xD35A, PROTOCOL_UNSUPP, 65536, 53248,     0},
{"IAP11F56X"         , 0xD35B, PROTOCOL_UNSUPP, 65536, 57344,     0},
{"STC11F56X"         , 0xD35C, PROTOCOL_UNSUPP, 65536, 57344,     0},
{"IAP11F60X"         , 0xD35D, PROTOCOL_UNSUPP, 65536, 61440,     0},
{"STC11F60X"         , 0xD35E, PROTOCOL_UNSUPP, 65536, 61440,     0},
{"IAP11F62X"         , 0xD35F, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"STC08XE-5V"        , 0xD360, PROTOCOL_UNSUPP, 65536,  8192, 55296},
{"STC16XE-5V"        , 0xD361, PROTOCOL_UNSUPP, 65536, 16384, 47104},
{"STC20XE-5V"        , 0xD362, PROTOCOL_UNSUPP, 65536, 20480, 30720},
{"IAP11F08XE"        , 0xD363, PROTOCOL_UNSUPP, 65536,  8192,     0},
{"STC11F08XE"        , 0xD364, PROTOCOL_UNSUPP, 65536,  8192, 55296},
{"STC32XE-5V"        , 0xD365, PROTOCOL_UNSUPP, 65536, 32768, 30720},
{"STC40XE-5V"        , 0xD366, PROTOCOL_UNSUPP, 65536, 40960, 22528},
{"IAP11F16XE"        , 0xD367, PROTOCOL_UNSUPP, 65536, 16384,     0},
{"STC11F16XE"        , 0xD368, PROTOCOL_UNSUPP, 65536, 16384, 47104},
{"IAP11F20XE"        , 0xD369, PROTOCOL_UNSUPP, 65536, 20480,     0},
{"STC11F20XE"        , 0xD36A, PROTOCOL_UNSUPP, 65536, 20480, 30720},
{"STC48XE-5V"        , 0xD36B, PROTOCOL_UNSUPP, 65536, 49152, 14336},
{"STC52XE-5V"        , 0xD36C, PROTOCOL_UNSUPP, 65536, 53248, 10240},
{"STC56XE-5V"        , 0xD36D, PROTOCOL_UNSUPP, 65536, 57344,  6144},
{"STC60XE-5V"        , 0xD36E, PROTOCOL_UNSUPP, 65536, 61440,  2048},
{"IAP11F32XE"        , 0xD36F, PROTOCOL_UNSUPP, 65536, 32768,     0},
{"STC11F32XE"        , 0xD370, PROTOCOL_UNSUPP, 65536, 32768, 30720},
{"IAP62X-5V"         , 0xD371, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"IAP11F40XE"        , 0xD373, PROTOCOL_UNSUPP, 65536, 40960,     0},
{"STC11F40XE"        , 0xD374, PROTOCOL_UNSUPP, 65536, 40960, 22528},
{"IAP11F48XE"        , 0xD377, PROTOCOL_UNSUPP, 65536, 49152,     0},
{"STC11F48XE"        , 0xD378, PROTOCOL_UNSUPP, 65536, 49152, 14336},
{"IAP11F52XE"        , 0xD379, PROTOCOL_UNSUPP, 65536, 53248,     0},
{"STC11F52XE"        , 0xD37A, PROTOCOL_UNSUPP, 65536, 53248, 10240},
{"IAP11F56XE"        , 0xD37B, PROTOCOL_UNSUPP, 65536, 57344,     0},
{"STC11F56XE"        , 0xD37C, PROTOCOL_UNSUPP, 65536, 57344,  6144},
{"IAP11F60XE"        , 0xD37D, PROTOCOL_UNSUPP, 65536, 61440,     0},
{"STC11F60XE"        , 0xD37E, PROTOCOL_UNSUPP, 65536, 61440,  2048},
{"IAP11L08"          , 0xD383, PROTOCOL_UNSUPP, 65536,  8192,     0},
{"STC11L08"          , 0xD384, PROTOCOL_UNSUPP, 65536,  8192,     0},
{"IAP11L16"          , 0xD387, PROTOCOL_UNSUPP, 65536, 16384,     0},
{"STC11L16"          , 0xD388, PROTOCOL_UNSUPP, 65536, 16384,     0},
{"IAP11L20"          , 0xD389, PROTOCOL_UNSUPP, 65536, 20480,     0},
{"STC11L20"          , 0xD38A, PROTOCOL_UNSUPP, 65536, 20480,     0},
{"IAP11L32"          , 0xD38F, PROTOCOL_UNSUPP, 65536, 32768,     0},
{"STC11L32"          , 0xD390, PROTOCOL_UNSUPP, 65536, 32768,     0},
{"IAP11L40"          , 0xD393, PROTOCOL_UNSUPP, 65536, 40960,     0},
{"STC11L40"          , 0xD394, PROTOCOL_UNSUPP, 65536, 40960,     0},
{"IAP11L48"          , 0xD397, PROTOCOL_UNSUPP, 65536, 49152,     0},
{"STC11L48"          , 0xD398, PROTOCOL_UNSUPP, 65536, 49152,     0},
{"IAP11L52"          , 0xD399, PROTOCOL_UNSUPP, 65536, 53248,     0},
{"STC11L52"          , 0xD39A, PROTOCOL_UNSUPP, 65536, 53248,     0},
{"IAP11L56"          , 0xD39B, PROTOCOL_UNSUPP, 65536, 57344,     0},
{"STC11L56"          , 0xD39C, PROTOCOL_UNSUPP, 65536, 57344,     0},
{"IAP11L60"          , 0xD39D, PROTOCOL_UNSUPP, 65536, 61440,     0},
{"STC11L60"          , 0xD39E, PROTOCOL_UNSUPP, 65536, 61440,     0},
{"IAP11L62"          , 0xD39F, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"IAP11L08X"         , 0xD3C3, PROTOCOL_UNSUPP, 65536,  8192,     0},
{"STC11L08X"         , 0xD3C4, PROTOCOL_UNSUPP, 65536,  8192,     0},
{"IAP11L16X"         , 0xD3C7, PROTOCOL_UNSUPP, 65536, 16384,     0},
{"STC11L16X"         , 0xD3C8, PROTOCOL_UNSUPP, 65536, 16384,     0},
{"IAP11L20X"         , 0xD3C9, PROTOCOL_UNSUPP, 65536, 20480,     0},
{"STC11L20X"         , 0xD3CA, PROTOCOL_UNSUPP, 65536, 20480,     0},
{"IAP11L32X"         , 0xD3CF, PROTOCOL_UNSUPP, 65536, 32768,     0},
{"STC11L32X"         , 0xD3D0, PROTOCOL_UNSUPP, 65536, 32768,     0},
{"IAP11L40X"         , 0xD3D3, PROTOCOL_UNSUPP, 65536, 40960,     0},
{"STC11L40X"         , 0xD3D4, PROTOCOL_UNSUPP, 65536, 40960,     0},
{"IAP11L48X"         , 0xD3D7, PROTOCOL_UNSUPP, 65536, 49152,     0},
{"STC11L48X"         , 0xD3D8, PROTOCOL_UNSUPP, 65536, 49152,     0},
{"IAP11L52X"         , 0xD3D9, PROTOCOL_UNSUPP, 65536, 53248,     0},
{"STC11L52X"         , 0xD3DA, PROTOCOL_UNSUPP, 65536, 53248,     0},
{"IAP11L56X"         , 0xD3DB, PROTOCOL_UNSUPP, 65536, 57344,     0},
{"STC11L56X"         , 0xD3DC, PROTOCOL_UNSUPP, 65536, 57344,     0},
{"IAP11L60X"         , 0xD3DD, PROTOCOL_UNSUPP, 65536, 61440,     0},
{"STC11L60X"         , 0xD3DE, PROTOCOL_UNSUPP, 65536, 61440,     0},
{"IAP11L62X"         , 0xD3DF, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"STC08XE-3V"        , 0xD3E0, PROTOCOL_UNSUPP, 65536,  8192, 55296},
{"STC16XE-3V"        , 0xD3E1, PROTOCOL_UNSUPP, 65536, 16384, 47104},
{"STC20XE-3V"        , 0xD3E2, PROTOCOL_UNSUPP, 65536, 20480, 30720},
{"IAP11L08XE"        , 0xD3E3, PROTOCOL_UNSUPP, 65536,  8192,     0},
{"STC11L08XE"        , 0xD3E4, PROTOCOL_UNSUPP, 65536,  8192, 55296},
{"STC32XE-3V"        , 0xD3E5, PROTOCOL_UNSUPP, 65536, 32768, 30720},
{"STC40XE-3V"        , 0xD3E6, PROTOCOL_UNSUPP, 65536, 40960, 22528},
{"IAP11L16XE"        , 0xD3E7, PROTOCOL_UNSUPP, 65536, 16384,     0},
{"STC11L16XE"        , 0xD3E8, PROTOCOL_UNSUPP, 65536, 16384, 47104},
{"IAP11L20XE"        , 0xD3E9, PROTOCOL_UNSUPP, 65536, 20480,     0},
{"STC11L20XE"        , 0xD3EA, PROTOCOL_UNSUPP, 65536, 20480, 30720},
{"STC48XE-3V"        , 0xD3EB, PROTOCOL_UNSUPP, 65536, 49152, 14336},
{"STC52XE-3V"        , 0xD3EC, PROTOCOL_UNSUPP, 65536, 53248, 10240},
{"STC56XE-3V"        , 0xD3ED, PROTOCOL_UNSUPP, 65536, 57344,  6144},
{"STC60XE-3V"        , 0xD3EE, PROTOCOL_UNSUPP, 65536, 61440,  2048},
{"IAP11L32XE"        , 0xD3EF, PROTOCOL_UNSUPP, 65536, 32768,     0},
{"STC11L32XE"        , 0xD3F0, PROTOCOL_UNSUPP, 65536, 32768, 30720},
{"IAP62X-3V"         , 0xD3F1, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"IAP11L40XE"        , 0xD3F3, PROTOCOL_UNSUPP, 65536, 40960,     0},
{"STC11L40XE"        , 0xD3F4, PROTOCOL_UNSUPP, 65536, 40960, 22528},
{"IAP11L48XE"        , 0xD3F7, PROTOCOL_UNSUPP, 65536, 49152,     0},
{"STC11L48XE"        , 0xD3F8, PROTOCOL_UNSUPP, 65536, 49152, 14336},
{"IAP11L52XE"        , 0xD3F9, PROTOCOL_UNSUPP, 65536, 53248,     0},
{"STC11L52XE"        , 0xD3FA, PROTOCOL_UNSUPP, 65536, 53248, 10240},
{"IAP11L56XE"        , 0xD3FB, PROTOCOL_UNSUPP, 65536, 57344,     0},
{"STC11L56XE"        , 0xD3FC, PROTOCOL_UNSUPP, 65536, 57344,  6144},
{"IAP11L60XE"        , 0xD3FD, PROTOCOL_UNSUPP, 65536, 61440,     0},
{"STC11L60XE"        , 0xD3FE, PROTOCOL_UNSUPP, 65536, 61440,  2048},
{"STC15F04"          , 0xD404, PROTOCOL_UNSUPP,  4096,  4096,     0},
{"STC15F06"          , 0xD406, PROTOCOL_UNSUPP,  6144,  6144,     0},
{"STC15F08"          , 0xD408, PROTOCOL_UNSUPP,  8192,  8192,     0},
{"STC15F10"          , 0xD40A, PROTOCOL_UNSUPP, 10240, 10240,     0},
{"STC15F12"          , 0xD40C, PROTOCOL_UNSUPP, 12288, 12288,     0},
{"STC15F04CCP"       , 0xD434, PROTOCOL_UNSUPP,  4096,  4096,     0},
{"STC15F06CCP"       , 0xD436, PROTOCOL_UNSUPP,  6144,  6144,     0},
{"STC15F08CCP"       , 0xD438, PROTOCOL_UNSUPP,  8192,  8192,     0},
{"STC15F10CCP"       , 0xD43A, PROTOCOL_UNSUPP, 10240, 10240,     0},
{"STC15F12CCP"       , 0xD43C, PROTOCOL_UNSUPP, 12288, 12288,     0},
{"STC15F04AD"        , 0xD444, PROTOCOL_UNSUPP,  4096,  4096,     0},
{"STC15F06AD"        , 0xD446, PROTOCOL_UNSUPP,  6144,  6144,     0},
{"STC15F08AD"        , 0xD448, PROTOCOL_UNSUPP,  8192,  8192,     0},
{"STC15F10AD"        , 0xD44A, PROTOCOL_UNSUPP, 10240, 10240,     0},
{"STC15F12AD"        , 0xD44C, PROTOCOL_UNSUPP, 12288, 12288,     0},
{"IAP15F08AD"        , 0xD458, PROTOCOL_UNSUPP,  8192,  8192,     0},
{"IAP15F10AD"        , 0xD45A, PROTOCOL_UNSUPP, 10240, 10240,     0},
{"IAP15F12AD"        , 0xD45C, PROTOCOL_UNSUPP, 12288, 12288,     0},
{"IAP15F14AD"        , 0xD45E, PROTOCOL_UNSUPP, 14336, 14336,     0},
{"STC15L04"          , 0xD484, PROTOCOL_UNSUPP,  4096,  4096,     0},
{"STC15L06"          , 0xD486, PROTOCOL_UNSUPP,  6144,  6144,     0},
{"STC15L08"          , 0xD488, PROTOCOL_UNSUPP,  8192,  8192,     0},
{"STC15L10"          , 0xD48A, PROTOCOL_UNSUPP, 10240, 10240,     0},
{"STC15L12"          , 0xD48C, PROTOCOL_UNSUPP, 12288, 12288,     0},
{"STC15L04CCP"       , 0xD4B4, PROTOCOL_UNSUPP,  4096,  4096,     0},
{"STC15L06CCP"       , 0xD4B6, PROTOCOL_UNSUPP,  6144,  6144,     0},
{"STC15L08CCP"       , 0xD4B8, PROTOCOL_UNSUPP,  8192,  8192,     0},
{"STC15L10CCP"       , 0xD4BA, PROTOCOL_UNSUPP, 10240, 10240,     0},
{"STC15L12CCP"       , 0xD4BC, PROTOCOL_UNSUPP, 12288, 12288,     0},
{"STC15L04AD"        , 0xD4C4, PROTOCOL_UNSUPP,  4096,  4096,     0},
{"STC15L06AD"        , 0xD4C6, PROTOCOL_UNSUPP,  6144,  6144,     0},
{"STC15L08AD"        , 0xD4C8, PROTOCOL_UNSUPP,  8192,  8192,     0},
{"STC15L10AD"        , 0xD4CA, PROTOCOL_UNSUPP, 10240, 10240,     0},
{"STC15L12AD"        , 0xD4CC, PROTOCOL_UNSUPP, 12288, 12288,     0},
{"IAP15L08AD"        , 0xD4D8, PROTOCOL_UNSUPP,  8192,  8192,     0},
{"IAP15L10AD"        , 0xD4DA, PROTOCOL_UNSUPP, 10240, 10240,     0},
{"IAP15L12AD"        , 0xD4DC, PROTOCOL_UNSUPP, 12288, 12288,     0},
{"IAP15L14AD"        , 0xD4DE, PROTOCOL_UNSUPP, 14336, 14336,     0},
{"STC12C5401"        , 0xE001, PROTOCOL_UNSUPP, 32768,  1024, 12288},
{"STC12C5402"        , 0xE002, PROTOCOL_UNSUPP, 32768,  2048, 12288},
{"STC12C5404"        , 0xE004, PROTOCOL_UNSUPP, 32768,  4096, 12288},
{"STC12C5406"        , 0xE006, PROTOCOL_UNSUPP, 32768,  6144, 12288},
{"STC12C5408"        , 0xE008, PROTOCOL_UNSUPP, 32768,  8192, 12288},
{"STC12C5410"        , 0xE00A, PROTOCOL_UNSUPP, 32768, 10240, 12288},
{"STC12C5412"        , 0xE00C, PROTOCOL_UNSUPP, 32768, 12288, 12288},
{"STC12C5416"        , 0xE010, PROTOCOL_UNSUPP, 32768, 16384, 12288},
{"STC12C5420"        , 0xE014, PROTOCOL_UNSUPP, 32768, 20480, 12288},
{"STC12C5424"        , 0xE018, PROTOCOL_UNSUPP, 32768, 24576, 12288},
{"STC12C5428"        , 0xE01C, PROTOCOL_UNSUPP, 32768, 28672, 12288},
{"STC12C5401AD"      , 0xE061, PROTOCOL_UNSUPP, 32768,  1024, 12288},
{"STC12C5402AD"      , 0xE062, PROTOCOL_UNSUPP, 32768,  2048, 12288},
{"STC12C5404AD"      , 0xE064, PROTOCOL_UNSUPP, 32768,  4096, 12288},
{"STC12C5406AD"      , 0xE066, PROTOCOL_UNSUPP, 32768,  6144, 12288},
{"STC12C5408AD"      , 0xE068, PROTOCOL_UNSUPP, 32768,  8192, 12288},
{"STC12C5410AD"      , 0xE06A, PROTOCOL_UNSUPP, 32768, 10240, 12288},
{"STC12C5412AD"      , 0xE06C, PROTOCOL_UNSUPP, 32768, 12288, 12288},
{"STC12C5416AD"      , 0xE070, PROTOCOL_UNSUPP, 32768, 16384, 12288},
{"STC12C5420AD"      , 0xE074, PROTOCOL_UNSUPP, 32768, 20480, 12288},
{"STC12C5424AD"      , 0xE078, PROTOCOL_UNSUPP, 32768, 24576, 12288},
{"STC12C5428AD"      , 0xE07C, PROTOCOL_UNSUPP, 32768, 28672, 12288},
{"STC12LE5401"       , 0xE081, PROTOCOL_UNSUPP, 32768,  1024, 12288},
{"STC12LE5402"       , 0xE082, PROTOCOL_UNSUPP, 32768,  2048, 12288},
{"STC12LE5404"       , 0xE084, PROTOCOL_UNSUPP, 32768,  4096, 12288},
{"STC12LE5406"       , 0xE086, PROTOCOL_UNSUPP, 32768,  6144, 12288},
{"STC12LE5408"       , 0xE088, PROTOCOL_UNSUPP, 32768,  8192, 12288},
{"STC12LE5410"       , 0xE08A, PROTOCOL_UNSUPP, 32768, 10240, 12288},
{"STC12LE5412"       , 0xE08C, PROTOCOL_UNSUPP, 32768, 12288, 12288},
{"STC12LE5416"       , 0xE090, PROTOCOL_UNSUPP, 32768, 16384, 12288},
{"STC12LE5420"       , 0xE094, PROTOCOL_UNSUPP, 32768, 20480, 12288},
{"STC12LE5424"       , 0xE098, PROTOCOL_UNSUPP, 32768, 24576, 12288},
{"STC12LE5428"       , 0xE09C, PROTOCOL_UNSUPP, 32768, 28672, 12288},
{"STC12LE5401AD"     , 0xE0E1, PROTOCOL_UNSUPP, 32768,  1024, 12288},
{"STC12LE5402AD"     , 0xE0E2, PROTOCOL_UNSUPP, 32768,  2048, 12288},
{"STC12LE5404AD"     , 0xE0E4, PROTOCOL_UNSUPP, 32768,  4096, 12288},
{"STC12LE5406AD"     , 0xE0E6, PROTOCOL_UNSUPP, 32768,  6144, 12288},
{"STC12LE5408AD"     , 0xE0E8, PROTOCOL_UNSUPP, 32768,  8192, 12288},
{"STC12LE5410AD"     , 0xE0EA, PROTOCOL_UNSUPP, 32768, 10240, 12288},
{"STC12LE5412AD"     , 0xE0EC, PROTOCOL_UNSUPP, 32768, 12288, 12288},
{"STC12LE5416AD"     , 0xE0F0, PROTOCOL_UNSUPP, 32768, 16384, 12288},
{"STC12LE5420AD"     , 0xE0F4, PROTOCOL_UNSUPP, 32768, 20480, 12288},
{"STC12LE5424AD"     , 0xE0F8, PROTOCOL_UNSUPP, 32768, 24576, 12288},
{"STC12LE5428AD"     , 0xE0FC, PROTOCOL_UNSUPP, 32768, 28672, 12288},
{"STC12C5201"        , 0xE101, PROTOCOL_UNSUPP,  8192,  1024,  5120},
{"STC12C5202"        , 0xE102, PROTOCOL_UNSUPP,  8192,  2048,  4096},
{"STC12C5203"        , 0xE103, PROTOCOL_UNSUPP,  8192,  3072,  3072},
{"STC12C5204"        , 0xE104, PROTOCOL_UNSUPP,  8192,  4096,  2048},
{"STC12C5205"        , 0xE105, PROTOCOL_UNSUPP,  8192,  5120,  1024},
{"STC12C5206"        , 0xE106, PROTOCOL_UNSUPP,  8192,  6144,     0},
{"STC12C5201PWM"     , 0xE121, PROTOCOL_UNSUPP,  8192,  1024,  5120},
{"STC12C5202PWM"     , 0xE122, PROTOCOL_UNSUPP,  8192,  2048,  4096},
{"STC12C5203PWM"     , 0xE123, PROTOCOL_UNSUPP,  8192,  3072,  3072},
{"STC12C5204PWM"     , 0xE124, PROTOCOL_UNSUPP,  8192,  4096,  2048},
{"STC12C5205PWM"     , 0xE125, PROTOCOL_UNSUPP,  8192,  5120,  1024},
{"STC12C5206PWM"     , 0xE126, PROTOCOL_UNSUPP,  8192,  6144,     0},
{"STC12C5201AD"      , 0xE161, PROTOCOL_UNSUPP,  8192,  1024,  5120},
{"STC12C5202AD"      , 0xE162, PROTOCOL_UNSUPP,  8192,  2048,  4096},
{"STC12C5203AD"      , 0xE163, PROTOCOL_UNSUPP,  8192,  3072,  3072},
{"STC12C5204AD"      , 0xE164, PROTOCOL_UNSUPP,  8192,  4096,  2048},
{"STC12C5205AD"      , 0xE165, PROTOCOL_UNSUPP,  8192,  5120,  1024},
{"STC12C5206AD"      , 0xE166, PROTOCOL_UNSUPP,  8192,  6144,     0},
{"STC5201AD-5V"      , 0xE168, PROTOCOL_UNSUPP,  8192,  1024,  5120},
{"STC5202AD-5V"      , 0xE169, PROTOCOL_UNSUPP,  8192,  2048,  4096},
{"STC5203AD-5V"      , 0xE16A, PROTOCOL_UNSUPP,  8192,  3072,  3072},
{"STC5204AD-5V"      , 0xE16B, PROTOCOL_UNSUPP,  8192,  4096,  2048},
{"STC5205AD-5V"      , 0xE16C, PROTOCOL_UNSUPP,  8192,  5120,  1024},
{"STC5206AD-5V"      , 0xE16D, PROTOCOL_UNSUPP,  8192,  6144,     0},
{"STC12LE5201"       , 0xE181, PROTOCOL_UNSUPP,  8192,  1024,  5120},
{"STC12LE5202"       , 0xE182, PROTOCOL_UNSUPP,  8192,  2048,  4096},
{"STC12LE5203"       , 0xE183, PROTOCOL_UNSUPP,  8192,  3072,  3072},
{"STC12LE5204"       , 0xE184, PROTOCOL_UNSUPP,  8192,  4096,  2048},
{"STC12LE5205"       , 0xE185, PROTOCOL_UNSUPP,  8192,  5120,  1024},
{"STC12LE5206"       , 0xE186, PROTOCOL_UNSUPP,  8192,  6144,     0},
{"STC12LE5201PWM"    , 0xE1A1, PROTOCOL_UNSUPP,  8192,  1024,  5120},
{"STC12LE5202PWM"    , 0xE1A2, PROTOCOL_UNSUPP,  8192,  2048,  4096},
{"STC12LE5203PWM"    , 0xE1A3, PROTOCOL_UNSUPP,  8192,  3072,  3072},
{"STC12LE5204PWM"    , 0xE1A4, PROTOCOL_UNSUPP,  8192,  4096,  2048},
{"STC12LE5205PWM"    , 0xE1A5, PROTOCOL_UNSUPP,  8192,  5120,  1024},
{"STC12LE5206PWM"    , 0xE1A6, PROTOCOL_UNSUPP,  8192,  6144,     0},
{"STC12LE5201AD"     , 0xE1E1, PROTOCOL_UNSUPP,  8192,  1024,  5120},
{"STC12LE5202AD"     , 0xE1E2, PROTOCOL_UNSUPP,  8192,  2048,  4096},
{"STC12LE5203AD"     , 0xE1E3, PROTOCOL_UNSUPP,  8192,  3072,  3072},
{"STC12LE5204AD"     , 0xE1E4, PROTOCOL_UNSUPP,  8192,  4096,  2048},
{"STC12LE5205AD"     , 0xE1E5, PROTOCOL_UNSUPP,  8192,  5120,  1024},
{"STC12LE5206AD"     , 0xE1E6, PROTOCOL_UNSUPP,  8192,  6144,     0},
{"STC5201AD-3V"      , 0xE1E8, PROTOCOL_UNSUPP,  8192,  1024,  5120},
{"STC5202AD-3V"      , 0xE1E9, PROTOCOL_UNSUPP,  8192,  2048,  4096},
{"STC5203AD-3V"      , 0xE1EA, PROTOCOL_UNSUPP,  8192,  3072,  3072},
{"STC5204AD-3V"      , 0xE1EB, PROTOCOL_UNSUPP,  8192,  4096,  2048},
{"STC5205AD-3V"      , 0xE1EC, PROTOCOL_UNSUPP,  8192,  5120,  1024},
{"STC5206AD-3V"      , 0xE1ED, PROTOCOL_UNSUPP,  8192,  6144,     0},
{"STC11F01"          , 0xE201, PROTOCOL_UNSUPP,  8192,  1024,     0},
{"STC11F02"          , 0xE202, PROTOCOL_UNSUPP,  8192,  2048,     0},
{"STC11F03"          , 0xE203, PROTOCOL_UNSUPP,  8192,  3072,     0},
{"STC11F04"          , 0xE204, PROTOCOL_UNSUPP,  8192,  4096,     0},
{"IAP11F01"          , 0xE211, PROTOCOL_UNSUPP,  8192,  1024,     0},
{"IAP11F02"          , 0xE212, PROTOCOL_UNSUPP,  8192,  2048,     0},
{"IAP11F03"          , 0xE213, PROTOCOL_UNSUPP,  8192,  3072,     0},
{"IAP11F04"          , 0xE214, PROTOCOL_UNSUPP,  8192,  4096,     0},
{"STC01E-5V"         , 0xE220, PROTOCOL_UNSUPP,  8192,  1024,  5120},
{"STC11F01E"         , 0xE221, PROTOCOL_UNSUPP,  8192,  1024,  5120},
{"STC11F02E"         , 0xE222, PROTOCOL_UNSUPP,  8192,  2048,  4096},
{"STC11F03E"         , 0xE223, PROTOCOL_UNSUPP,  8192,  3072,  3072},
{"STC11F04E"         , 0xE224, PROTOCOL_UNSUPP,  8192,  4096,  2048},
{"STC02E-5V"         , 0xE226, PROTOCOL_UNSUPP,  8192,  2048,  4096},
{"STC03E-5V"         , 0xE227, PROTOCOL_UNSUPP,  8192,  3072,  3072},
{"STC04E-5V"         , 0xE228, PROTOCOL_UNSUPP,  8192,  4096,  2048},
{"STC05E-5V"         , 0xE229, PROTOCOL_UNSUPP,  8192,  5120,  1024},
{"IAP06-5V"          , 0xE22A, PROTOCOL_UNSUPP,  8192,  6144,     0},
{"IAP11F01E"         , 0xE231, PROTOCOL_UNSUPP,  8192,  1024,     0},
{"IAP11F02E"         , 0xE232, PROTOCOL_UNSUPP,  8192,  2048,     0},
{"IAP11F03E"         , 0xE233, PROTOCOL_UNSUPP,  8192,  3072,     0},
{"IAP11F04E"         , 0xE234, PROTOCOL_UNSUPP,  8192,  4096,     0},
{"STC11F05"          , 0xE245, PROTOCOL_UNSUPP,  8192,  5120,     0},
{"IAP11F05"          , 0xE255, PROTOCOL_UNSUPP,  8192,  5120,     0},
{"STC11F05E"         , 0xE265, PROTOCOL_UNSUPP,  8192,  5120,  1024},
{"IAP11F05E"         , 0xE275, PROTOCOL_UNSUPP,  8192,  5120,     0},
{"IAP11F06"          , 0xE276, PROTOCOL_UNSUPP,  8192,  6144,     0},
{"STC11L01"          , 0xE281, PROTOCOL_UNSUPP,  8192,  1024,     0},
{"STC11L02"          , 0xE282, PROTOCOL_UNSUPP,  8192,  2048,     0},
{"STC11L03"          , 0xE283, PROTOCOL_UNSUPP,  8192,  3072,     0},
{"STC11L04"          , 0xE284, PROTOCOL_UNSUPP,  8192,  4096,     0},
{"IAP11L01"          , 0xE291, PROTOCOL_UNSUPP,  8192,  1024,     0},
{"IAP11L02"          , 0xE292, PROTOCOL_UNSUPP,  8192,  2048,     0},
{"IAP11L03"          , 0xE293, PROTOCOL_UNSUPP,  8192,  3072,     0},
{"IAP11L04"          , 0xE294, PROTOCOL_UNSUPP,  8192,  4096,     0},
{"STC01E-3V"         , 0xE2A0, PROTOCOL_UNSUPP,  8192,  1024,  5120},
{"STC11L01E"         , 0xE2A1, PROTOCOL_UNSUPP,  8192,  1024,  5120},
{"STC11L02E"         , 0xE2A2, PROTOCOL_UNSUPP,  8192,  2048,  4096},
{"STC11L03E"         , 0xE2A3, PROTOCOL_UNSUPP,  8192,  3072,  3072},
{"STC11L04E"         , 0xE2A4, PROTOCOL_UNSUPP,  8192,  4096,  2048},
{"STC02E-3V"         , 0xE2A6, PROTOCOL_UNSUPP,  8192,  2048,  4096},
{"STC03E-3V"         , 0xE2A7, PROTOCOL_UNSUPP,  8192,  3072,  3072},
{"STC04E-3V"         , 0xE2A8, PROTOCOL_UNSUPP,  8192,  4096,  2048},
{"STC05E-3V"         , 0xE2A9, PROTOCOL_UNSUPP,  8192,  5120,  1024},
{"IAP06-3V"          , 0xE2AA, PROTOCOL_UNSUPP,  8192,  6144,     0},
{"IAP11L01E"         , 0xE2B1, PROTOCOL_UNSUPP,  8192,  1024,     0},
{"IAP11L02E"         , 0xE2B2, PROTOCOL_UNSUPP,  8192,  2048,     0},
{"IAP11L03E"         , 0xE2B3, PROTOCOL_UNSUPP,  8192,  3072,     0},
{"IAP11L04E"         , 0xE2B4, PROTOCOL_UNSUPP,  8192,  4096,     0},
{"STC11L05"          , 0xE2C5, PROTOCOL_UNSUPP,  8192,  5120,     0},
{"IAP11L05"          , 0xE2D5, PROTOCOL_UNSUPP,  8192,  5120,     0},
{"STC11L05E"         , 0xE2E5, PROTOCOL_UNSUPP,  8192,  5120,  1024},
{"IAP11L05E"         , 0xE2F5, PROTOCOL_UNSUPP,  8192,  5120,     0},
{"IAP11L06"          , 0xE2F6, PROTOCOL_UNSUPP,  8192,  6144,     0},
{"STC12C5601"        , 0xE601, PROTOCOL_UNSUPP, 32768,  1024, 29696},
{"STC12C5602"        , 0xE602, PROTOCOL_UNSUPP, 32768,  2048, 28672},
{"STC12C5603"        , 0xE603, PROTOCOL_UNSUPP, 32768,  3072, 27648},
{"STC12C5604"        , 0xE604, PROTOCOL_UNSUPP, 32768,  4096, 26624},
{"STC12C5605"        , 0xE605, PROTOCOL_UNSUPP, 32768,  5120,     0},
{"STC12C5606"        , 0xE606, PROTOCOL_UNSUPP, 32768,  6144, 24576},
{"STC12C5608"        , 0xE608, PROTOCOL_UNSUPP, 32768,  8192, 22528},
{"STC12C5612"        , 0xE60C, PROTOCOL_UNSUPP, 32768, 12288,     0},
{"STC12C5616"        , 0xE610, PROTOCOL_UNSUPP, 32768, 16384, 14336},
{"STC12C5620"        , 0xE614, PROTOCOL_UNSUPP, 32768, 20480, 10240},
{"STC12C5624"        , 0xE618, PROTOCOL_UNSUPP, 32768, 24576,  6144},
{"STC12C5628"        , 0xE61C, PROTOCOL_UNSUPP, 32768, 28672,     0},
{"STC12C5630"        , 0xE61E, PROTOCOL_UNSUPP, 32768, 30720,     0},
{"STC12C5601AD"      , 0xE661, PROTOCOL_UNSUPP, 32768,  1024, 29696},
{"STC12C5602AD"      , 0xE662, PROTOCOL_UNSUPP, 32768,  2048, 28672},
{"STC12C5603AD"      , 0xE663, PROTOCOL_UNSUPP, 32768,  3072, 27648},
{"STC12C5604AD"      , 0xE664, PROTOCOL_UNSUPP, 32768,  4096, 26624},
{"STC12C5605AD"      , 0xE665, PROTOCOL_UNSUPP, 32768,  5120,     0},
{"STC12C5606AD"      , 0xE666, PROTOCOL_UNSUPP, 32768,  6144, 24576},
{"STC608AD-5V"       , 0xE667, PROTOCOL_UNSUPP, 32768,  8192, 22528},
{"STC12C5608AD"      , 0xE668, PROTOCOL_UNSUPP, 32768,  8192, 22528},
{"IAP616AD-5V"       , 0xE669, PROTOCOL_UNSUPP, 32768, 16384,     0},
{"STC616AD-5V"       , 0xE66A, PROTOCOL_UNSUPP, 32768, 16384, 14336},
{"STC12C5612AD"      , 0xE66C, PROTOCOL_UNSUPP, 32768, 12288,     0},
{"STC12C5616AD"      , 0xE670, PROTOCOL_UNSUPP, 32768, 16384, 14336},
{"STC12C5620AD"      , 0xE674, PROTOCOL_UNSUPP, 32768, 20480, 10240},
{"STC12C5624AD"      , 0xE678, PROTOCOL_UNSUPP, 32768, 24576,  6144},
{"STC12C5628AD"      , 0xE67C, PROTOCOL_UNSUPP, 32768, 28672,     0},
{"STC12C5630AD"      , 0xE67E, PROTOCOL_UNSUPP, 32768, 30720,     0},
{"STC12LE5601"       , 0xE681, PROTOCOL_UNSUPP, 32768,  1024, 29696},
{"STC12LE5602"       , 0xE682, PROTOCOL_UNSUPP, 32768,  2048, 28672},
{"STC12LE5603"       , 0xE683, PROTOCOL_UNSUPP, 32768,  3072, 27648},
{"STC12LE5604"       , 0xE684, PROTOCOL_UNSUPP, 32768,  4096, 26624},
{"STC12LE5605"       , 0xE685, PROTOCOL_UNSUPP, 32768,  5120,     0},
{"STC12LE5606"       , 0xE686, PROTOCOL_UNSUPP, 32768,  6144, 24576},
{"STC12LE5608"       , 0xE688, PROTOCOL_UNSUPP, 32768,  8192, 22528},
{"STC12LE5612"       , 0xE68C, PROTOCOL_UNSUPP, 32768, 12288,     0},
{"STC12LE5616"       , 0xE690, PROTOCOL_UNSUPP, 32768, 16384, 14336},
{"STC12LE5620"       , 0xE694, PROTOCOL_UNSUPP, 32768, 20480, 10240},
{"STC12LE5624"       , 0xE698, PROTOCOL_UNSUPP, 32768, 24576,  6144},
{"STC12LE5628"       , 0xE69C, PROTOCOL_UNSUPP, 32768, 28672,     0},
{"STC12LE5630"       , 0xE69E, PROTOCOL_UNSUPP, 32768, 30720,     0},
{"STC12LE5601AD"     , 0xE6E1, PROTOCOL_UNSUPP, 32768,  1024, 29696},
{"STC12LE5602AD"     , 0xE6E2, PROTOCOL_UNSUPP, 32768,  2048, 28672},
{"STC12LE5603AD"     , 0xE6E3, PROTOCOL_UNSUPP, 32768,  3072, 27648},
{"STC12LE5604AD"     , 0xE6E4, PROTOCOL_UNSUPP, 32768,  4096, 26624},
{"STC12LE5605AD"     , 0xE6E5, PROTOCOL_UNSUPP, 32768,  5120,     0},
{"STC12LE5606AD"     , 0xE6E6, PROTOCOL_UNSUPP, 32768,  6144, 24576},
{"STC608AD-3V"       , 0xE6E7, PROTOCOL_UNSUPP, 32768,  8192, 22528},
{"STC12LE5608AD"     , 0xE6E8, PROTOCOL_UNSUPP, 32768,  8192, 22528},
{"IAP616AD-3V"       , 0xE6E9, PROTOCOL_UNSUPP, 32768, 16384,     0},
{"STC616AD-3V"       , 0xE6EA, PROTOCOL_UNSUPP, 32768, 16384, 14336},
{"STC12LE5612AD"     , 0xE6EC, PROTOCOL_UNSUPP, 32768, 12288,     0},
{"STC12LE5616AD"     , 0xE6F0, PROTOCOL_UNSUPP, 32768, 16384, 14336},
{"STC12LE5620AD"     , 0xE6F4, PROTOCOL_UNSUPP, 32768, 20480, 10240},
{"STC12LE5624AD"     , 0xE6F8, PROTOCOL_UNSUPP, 32768, 24576,  6144},
{"STC12LE5628AD"     , 0xE6FC, PROTOCOL_UNSUPP, 32768, 28672,     0},
{"STC12LE5630AD"     , 0xE6FE, PROTOCOL_UNSUPP, 32768, 30720,     0},
{"STC89C51RC/LE51R"  , 0xF001, PROTOCOL_UNSUPP, 16384,  4096, 10240},
{"STC89C52RC/LE52R"  , 0xF002, PROTOCOL_UNSUPP, 16384,  8192,  6144},
{"STC89C53RC/LE53R"  , 0xF004, PROTOCOL_UNSUPP, 16384, 14336,     0},
{"STC89C06RC/LE06R"  , 0xF006, PROTOCOL_UNSUPP, 16384,  6144,  8192},
{"STC89C07RC/LE07R"  , 0xF007, PROTOCOL_UNSUPP, 16384,  7168,  7168},
{"STC89C10RC/LE10R"  , 0xF00A, PROTOCOL_UNSUPP, 16384, 10240,  4096},
{"STC89C12RC/LE12R"  , 0xF00C, PROTOCOL_UNSUPP, 16384, 12288,  2048},
{"STC90C51RC"        , 0xF021, PROTOCOL_UNSUPP, 16384,  4096, 10240},
{"STC90C52RC"        , 0xF022, PROTOCOL_UNSUPP, 16384,  8192,  6144},
{"STC90C53RC"        , 0xF024, PROTOCOL_UNSUPP, 16384, 14336,     0},
{"STC90C06RC"        , 0xF026, PROTOCOL_UNSUPP, 16384,  6144,  8192},
{"STC90C07RC"        , 0xF027, PROTOCOL_UNSUPP, 16384,  7168,  7168},
{"STC90C10RC"        , 0xF02A, PROTOCOL_UNSUPP, 16384, 10240,  4096},
{"STC90C12RC"        , 0xF02C, PROTOCOL_UNSUPP, 16384, 12288,  2048},
{"STC90LE51RC"       , 0xF041, PROTOCOL_UNSUPP, 16384,  4096, 10240},
{"STC90LE52RC"       , 0xF042, PROTOCOL_UNSUPP, 16384,  8192,  6144},
{"STC90LE53RC"       , 0xF044, PROTOCOL_UNSUPP, 16384, 14336,     0},
{"STC90LE06RC"       , 0xF046, PROTOCOL_UNSUPP, 16384,  6144,  8192},
{"STC90LE07RC"       , 0xF047, PROTOCOL_UNSUPP, 16384,  7168,  7168},
{"STC90LE10RC"       , 0xF04A, PROTOCOL_UNSUPP, 16384, 10240,  4096},
{"STC90LE12RC"       , 0xF04C, PROTOCOL_UNSUPP, 16384, 12288,  2048},
{"STC89C51"          , 0xF050, PROTOCOL_UNSUPP, 16384,  4096, 10240},
{"STC89C52"          , 0xF051, PROTOCOL_UNSUPP, 16384,  8192,  6144},
{"STC89C53"          , 0xF052, PROTOCOL_UNSUPP, 16384, 12288,  2048},
{"STC89C14"          , 0xF053, PROTOCOL_UNSUPP, 16384, 14336,     0},
{"STC89LE51"         , 0xF060, PROTOCOL_UNSUPP, 16384,  4096, 10240},
{"STC89LE52"         , 0xF061, PROTOCOL_UNSUPP, 16384,  8192,  6144},
{"STC89LE53"         , 0xF062, PROTOCOL_UNSUPP, 16384, 12288,  2048},
{"STC89LE14"         , 0xF063, PROTOCOL_UNSUPP, 16384, 14336,     0},
{"STC89C51RD+/LE51"  , 0xF101, PROTOCOL_UNSUPP, 65536,  4096, 59392},
{"STC89C52RD+/LE52"  , 0xF102, PROTOCOL_UNSUPP, 65536,  8192, 55296},
{"STC89C54RD+/LE54"  , 0xF104, PROTOCOL_UNSUPP, 65536, 16384, 47104},
{"STC89C55RD+/LE55"  , 0xF105, PROTOCOL_UNSUPP, 65536, 20480, 43008},
{"STC89C58RD+/LE58"  , 0xF108, PROTOCOL_UNSUPP, 65536, 32768, 30720},
{"STC89C510RD+/LE5"  , 0xF10A, PROTOCOL_UNSUPP, 65536, 40960, 22528},
{"STC89C512RD+/LE5"  , 0xF10C, PROTOCOL_UNSUPP, 65536, 49152, 14336},
{"STC89C513RD+/LE5"  , 0xF10D, PROTOCOL_UNSUPP, 65536, 53248, 10240},
{"STC89C514RD+/LE5"  , 0xF10E, PROTOCOL_UNSUPP, 65536, 57344,  6144},
{"STC89C516RD+/LE5"  , 0xF110, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"STC90C51RD+"       , 0xF121, PROTOCOL_UNSUPP, 65536,  4096, 59392},
{"STC90C52RD+"       , 0xF122, PROTOCOL_UNSUPP, 65536,  8192, 55296},
{"STC90C54RD+"       , 0xF124, PROTOCOL_UNSUPP, 65536, 16384, 47104},
{"STC90C55RD+"       , 0xF125, PROTOCOL_UNSUPP, 65536, 20480, 43008},
{"STC90C58RD+"       , 0xF128, PROTOCOL_UNSUPP, 65536, 32768, 30720},
{"STC90C510RD+"      , 0xF12A, PROTOCOL_UNSUPP, 65536, 40960, 22528},
{"STC90C512RD+"      , 0xF12C, PROTOCOL_UNSUPP, 65536, 49152, 14336},
{"STC90C513RD+"      , 0xF12D, PROTOCOL_UNSUPP, 65536, 53248, 10240},
{"STC90C514RD+"      , 0xF12E, PROTOCOL_UNSUPP, 65536, 57344,  6144},
{"STC90C516RD+"      , 0xF130, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"STC90LE51RD+"      , 0xF141, PROTOCOL_UNSUPP, 65536,  4096, 59392},
{"STC90LE52RD+"      , 0xF142, PROTOCOL_UNSUPP, 65536,  8192, 55296},
{"STC90LE54RD+"      , 0xF144, PROTOCOL_UNSUPP, 65536, 16384, 47104},
{"STC90LE55RD+"      , 0xF145, PROTOCOL_UNSUPP, 65536, 20480, 43008},
{"STC90LE58RD+"      , 0xF148, PROTOCOL_UNSUPP, 65536, 32768, 30720},
{"STC90LE510RD+"     , 0xF14A, PROTOCOL_UNSUPP, 65536, 40960, 22528},
{"STC90LE512RD+"     , 0xF14C, PROTOCOL_UNSUPP, 65536, 49152, 14336},
{"STC90LE513RD+"     , 0xF14D, PROTOCOL_UNSUPP, 65536, 53248, 10240},
{"STC90LE514RD+"     , 0xF14E, PROTOCOL_UNSUPP, 65536, 57344,  6144},
{"STC90LE516RD+"     , 0xF150, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"STC90C51AD"        , 0xF161, PROTOCOL_UNSUPP, 65536,  4096, 59392},
{"STC90C52AD"        , 0xF162, PROTOCOL_UNSUPP, 65536,  8192, 55296},
{"STC90C54AD"        , 0xF164, PROTOCOL_UNSUPP, 65536, 16384, 47104},
{"STC90C55AD"        , 0xF165, PROTOCOL_UNSUPP, 65536, 20480, 43008},
{"STC90C58AD"        , 0xF168, PROTOCOL_UNSUPP, 65536, 32768, 30720},
{"STC90C510AD"       , 0xF16A, PROTOCOL_UNSUPP, 65536, 40960, 22528},
{"STC90C512AD"       , 0xF16C, PROTOCOL_UNSUPP, 65536, 49152, 14336},
{"STC90C513AD"       , 0xF16D, PROTOCOL_UNSUPP, 65536, 53248, 10240},
{"STC90C514AD"       , 0xF16E, PROTOCOL_UNSUPP, 65536, 57344,  6144},
{"STC90C516AD"       , 0xF170, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"STC90LE51AD"       , 0xF181, PROTOCOL_UNSUPP, 65536,  4096, 59392},
{"STC90LE52AD"       , 0xF182, PROTOCOL_UNSUPP, 65536,  8192, 55296},
{"STC90LE54AD"       , 0xF184, PROTOCOL_UNSUPP, 65536, 16384, 47104},
{"STC90LE55AD"       , 0xF185, PROTOCOL_UNSUPP, 65536, 20480, 43008},
{"STC90LE58AD"       , 0xF188, PROTOCOL_UNSUPP, 65536, 32768, 30720},
{"STC90LE510AD"      , 0xF18A, PROTOCOL_UNSUPP, 65536, 40960, 22528},
{"STC90LE512AD"      , 0xF18C, PROTOCOL_UNSUPP, 65536, 49152, 14336},
{"STC90LE513AD"      , 0xF18D, PROTOCOL_UNSUPP, 65536, 53248, 10240},
{"STC90LE514AD"      , 0xF18E, PROTOCOL_UNSUPP, 65536, 57344,  6144},
{"STC90LE516AD"      , 0xF190, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"STC89C54"          , 0xF1A0, PROTOCOL_UNSUPP, 65536, 16384, 47104},
{"STC89C58"          , 0xF1A1, PROTOCOL_UNSUPP, 65536, 32768, 30720},
{"STC89C510"         , 0xF1A2, PROTOCOL_UNSUPP, 65536, 40960, 22528},
{"STC89C512"         , 0xF1A3, PROTOCOL_UNSUPP, 65536, 49152, 14336},
{"STC89C514"         , 0xF1A4, PROTOCOL_UNSUPP, 65536, 57344,  6144},
{"STC89C516"         , 0xF1A5, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"STC89LE54"         , 0xF1B0, PROTOCOL_UNSUPP, 65536, 16384, 47104},
{"STC89LE58"         , 0xF1B1, PROTOCOL_UNSUPP, 65536, 32768, 30720},
{"STC89LE510"        , 0xF1B2, PROTOCOL_UNSUPP, 65536, 40960, 22528},
{"STC89LE512"        , 0xF1B3, PROTOCOL_UNSUPP, 65536, 49152, 14336},
{"STC89LE514"        , 0xF1B4, PROTOCOL_UNSUPP, 65536, 57344,  6144},
{"STC89LE516"        , 0xF1B5, PROTOCOL_UNSUPP, 65536, 63488,     0},
{"STC12C1052"        , 0xF201, PROTOCOL_UNSUPP,  8192,  1024,  5120},
{"STC12C2052"        , 0xF202, PROTOCOL_UNSUPP,  8192,  2048,  4096},
{"STC12C3052"        , 0xF203, PROTOCOL_UNSUPP,  8192,  3072,  3072},
{"STC12C4052"        , 0xF204, PROTOCOL_UNSUPP,  8192,  4096,  2048},
{"STC12C5052"        , 0xF205, PROTOCOL_UNSUPP,  8192,  5120,  1024},
{"STC12C1052AD"      , 0xF211, PROTOCOL_UNSUPP,  8192,  1024,  5120},
{"STC12C2052AD"      , 0xF212, PROTOCOL_UNSUPP,  8192,  2048,  4096},
{"STC12C3052AD"      , 0xF213, PROTOCOL_UNSUPP,  8192,  3072,  3072},
{"STC12C4052AD"      , 0xF214, PROTOCOL_UNSUPP,  8192,  4096,  2048},
{"STC12C5052AD"      , 0xF215, PROTOCOL_UNSUPP,  8192,  5120,  1024},
{"STC12LE1052"       , 0xF221, PROTOCOL_UNSUPP,  8192,  1024,  5120},
{"STC12LE2052"       , 0xF222, PROTOCOL_UNSUPP,  8192,  2048,  4096},
{"STC12LE3052"       , 0xF223, PROTOCOL_UNSUPP,  8192,  3072,  3072},
{"STC12LE4052"       , 0xF224, PROTOCOL_UNSUPP,  8192,  4096,  2048},
{"STC12LE5052"       , 0xF225, PROTOCOL_UNSUPP,  8192,  5120,  1024},
{"STC12LE1052AD"     , 0xF231, PROTOCOL_UNSUPP,  8192,  1024,  5120},
{"STC12LE2052AD"     , 0xF232, PROTOCOL_UNSUPP,  8192,  2048,  4096},
{"STC12LE3052AD"     , 0xF233, PROTOCOL_UNSUPP,  8192,  3072,  3072},
{"STC12LE4052AD"     , 0xF234, PROTOCOL_UNSUPP,  8192,  4096,  2048},
{"STC12LE5052AD"     , 0xF235, PROTOCOL_UNSUPP,  8192,  5120,  1024},
{"STC15F100W"        , 0xF290, PROTOCOL_UNSUPP,  8192,   512,     0},
{"STC15F101W"        , 0xF291, PROTOCOL_UNSUPP,  8192,  1024,  4096},
{"STC15F102W"        , 0xF292, PROTOCOL_UNSUPP,  8192,  2048,  3072},
{"STC15F103W"        , 0xF293, PROTOCOL_UNSUPP,  8192,  3072,  2048},
{"STC15F104W"        , 0xF294, PROTOCOL_STC15 ,  8192,  4096,  1024},
{"STC15F104E"        , 0xF294, PROTOCOL_UNSUPP,  8192,  4096,  1024},
{"STC15F100"         , 0xF298, PROTOCOL_UNSUPP,  8192,   512,     0},
{"STC15F101"         , 0xF299, PROTOCOL_UNSUPP,  8192,  1024,  4096},
{"STC15F102"         , 0xF29A, PROTOCOL_UNSUPP,  8192,  2048,  3072},
{"STC15F103"         , 0xF29B, PROTOCOL_UNSUPP,  8192,  3072,  2048},
{"STC15F104"         , 0xF29C, PROTOCOL_UNSUPP,  8192,  4096,  1024},
{"STC15W100"         , 0xF2A0, PROTOCOL_UNSUPP,  8192,   512,     0},
{"STC15W101"         , 0xF2A1, PROTOCOL_UNSUPP,  8192,  1024,  4096},
{"STC15W102"         , 0xF2A2, PROTOCOL_UNSUPP,  8192,  2048,  3072},
{"STC15W103"         , 0xF2A3, PROTOCOL_UNSUPP,  8192,  3072,  2048},
{"STC15W104"         , 0xF2A4, PROTOCOL_STC15 ,  8192,  4096,  1024},
{"IAP15W105"         , 0xF2A5, PROTOCOL_UNSUPP,  8192,  5120,     0},
{"IRC15W107"         , 0xF2A6, PROTOCOL_UNSUPP,  8192,  7168,     0},
{"IAP15F105W"        , 0xF2B5, PROTOCOL_UNSUPP,  8192,  5120,     0},
{"IRC15F107W"        , 0xF2B6, PROTOCOL_UNSUPP,  8192,  7168,     0},
{"IAP15F105"         , 0xF2BD, PROTOCOL_UNSUPP,  8192,  5120,     0},
{"IRC15F107"         , 0xF2BE, PROTOCOL_UNSUPP,  8192,  7168,     0},
{"STC15L100W"        , 0xF2D0, PROTOCOL_UNSUPP,  8192,   512,     0},
{"STC15L101W"        , 0xF2D1, PROTOCOL_UNSUPP,  8192,  1024,  4096},
{"STC15L102W"        , 0xF2D2, PROTOCOL_UNSUPP,  8192,  2048,  3072},
{"STC15L103W"        , 0xF2D3, PROTOCOL_UNSUPP,  8192,  3072,  2048},
{"STC15L104W"        , 0xF2D4, PROTOCOL_UNSUPP,  8192,  4096,  1024},
{"STC15L104E"        , 0xF2D4, PROTOCOL_UNSUPP,  8192,  4096,  1024},
{"STC15L100"         , 0xF2D8, PROTOCOL_UNSUPP,  8192,   512,     0},
{"STC15L101"         , 0xF2D9, PROTOCOL_UNSUPP,  8192,  1024,  4096},
{"STC15L102"         , 0xF2DA, PROTOCOL_UNSUPP,  8192,  2048,  3072},
{"STC15L103"         , 0xF2DB, PROTOCOL_UNSUPP,  8192,  3072,  2048},
{"STC15L104"         , 0xF2DC, PROTOCOL_UNSUPP,  8192,  4096,  1024},
{"IAP15L105W"        , 0xF2F5, PROTOCOL_UNSUPP,  8192,  5120,     0},
{"IRC15L107W"        , 0xF2F6, PROTOCOL_UNSUPP,  8192,  7168,     0},
{"IAP15L105"         , 0xF2FD, PROTOCOL_UNSUPP,  8192,  5120,     0},
{"IRC15L107"         , 0xF2FE, PROTOCOL_UNSUPP,  8192,  7168,     0},
{"STC15F204EA"       , 0xF394, PROTOCOL_UNSUPP,  8192,  4096,  1024},
{"IAP15F205EA"       , 0xF3B5, PROTOCOL_UNSUPP,  8192,  5120,     0},
{"IRC15F207A"        , 0xF3B6, PROTOCOL_UNSUPP,  8192,  7168,     0},
{"STC15L204EA"       , 0xF3D4, PROTOCOL_UNSUPP,  8192,  4096,  1024},
{"IAP15L205EA"       , 0xF3F5, PROTOCOL_UNSUPP,  8192,  5120,     0},
{"IRC15L207A"        , 0xF3F6, PROTOCOL_UNSUPP,  8192,  7168,     0},
{"IRC15F1K63S2"      , 0xF400, PROTOCOL_STC15B, 65536, 65024,     0},
{"STC15F2K08S2"      , 0xF401, PROTOCOL_STC15B, 65536,  8192, 54272},
{"STC15F2K16S2"      , 0xF402, PROTOCOL_STC15B, 65536, 16384, 46080},
{"STC15F2K24S2"      , 0xF403, PROTOCOL_STC15B, 65536, 24576, 37888},
{"STC15F2K32S2"      , 0xF404, PROTOCOL_STC15B, 65536, 32768, 29696},
{"STC15F2K40S2"      , 0xF405, PROTOCOL_STC15B, 65536, 40960, 21504},
{"STC15F2K48S2"      , 0xF406, PROTOCOL_STC15B, 65536, 49152, 13312},
{"STC15F2K56S2"      , 0xF407, PROTOCOL_STC15B, 65536, 57344,  5120},
{"STC15F2K60S2"      , 0xF408, PROTOCOL_STC15B, 65536, 61440,  1024},
{"IAP15F1K61S2"      , 0xF409, PROTOCOL_STC15B, 65536, 62464,     0},
{"STC15F404AD"       , 0xF40A, PROTOCOL_UNSUPP, 65536,  4096,  9216},
{"STC15F408AD"       , 0xF40B, PROTOCOL_UNSUPP, 65536,  8192,  5120},
{"STC15F412AD"       , 0xF40C, PROTOCOL_UNSUPP, 65536, 12288,  1024},
{"IRC15F1K63AS"      , 0xF410, PROTOCOL_STC15B, 65536, 65024,     0},
{"STC15F2K08AS"      , 0xF411, PROTOCOL_STC15B, 65536,  8192, 54272},
{"STC15F2K16AS"      , 0xF412, PROTOCOL_STC15B, 65536, 16384, 46080},
{"STC15F2K24AS"      , 0xF413, PROTOCOL_STC15B, 65536, 24576, 37888},
{"STC15F2K32AS"      , 0xF414, PROTOCOL_STC15B, 65536, 32768, 29696},
{"STC15F2K40AS"      , 0xF415, PROTOCOL_STC15B, 65536, 40960, 21504},
{"STC15F2K48AS"      , 0xF416, PROTOCOL_STC15B, 65536, 49152, 13312},
{"STC15F2K56AS"      , 0xF417, PROTOCOL_STC15B, 65536, 57344,  5120},
{"STC15F2K60AS"      , 0xF418, PROTOCOL_STC15B, 65536, 61440,  1024},
{"IAP15F1K61AS"      , 0xF419, PROTOCOL_STC15B, 65536, 62464,     0},
{"IRC15F1K63S"       , 0xF420, PROTOCOL_STC15B, 65536, 65024,     0},
{"STC15F2K08S"       , 0xF421, PROTOCOL_STC15B, 65536,  8192, 54272},
{"STC15F2K16S"       , 0xF422, PROTOCOL_STC15B, 65536, 16384, 46080},
{"STC15F2K24S"       , 0xF423, PROTOCOL_STC15B, 65536, 24576, 37888},
{"STC15F2K32S"       , 0xF424, PROTOCOL_STC15B, 65536, 32768, 29696},
{"STC15F2K40S"       , 0xF425, PROTOCOL_STC15B, 65536, 40960, 21504},
{"STC15F2K48S"       , 0xF426, PROTOCOL_STC15B, 65536, 49152, 13312},
{"STC15F2K56S"       , 0xF427, PROTOCOL_STC15B, 65536, 57344,  5120},
{"STC15F2K60S"       , 0xF428, PROTOCOL_STC15B, 65536, 61440,  1024},
{"IAP15F1K61S"       , 0xF429, PROTOCOL_STC15B, 65536, 62464,     0},
{"STC15F1K08S2"      , 0xF441, PROTOCOL_STC15B, 65536,  8192, 54272},
{"STC15F1K16S2"      , 0xF442, PROTOCOL_STC15B, 65536, 16384, 46080},
{"STC15F1K24S2"      , 0xF443, PROTOCOL_STC15B, 65536, 24576, 37888},
{"STC15F1K32S2"      , 0xF444, PROTOCOL_STC15B, 65536, 32768, 29696},
{"STC15F1K40S2"      , 0xF445, PROTOCOL_STC15B, 65536, 40960, 21504},
{"STC15F1K48S2"      , 0xF446, PROTOCOL_STC15B, 65536, 49152, 13312},
{"STC15F1K56S2"      , 0xF447, PROTOCOL_STC15B, 65536, 57344,  5120},
{"STC15F1K60S2"      , 0xF448, PROTOCOL_STC15B, 65536, 61440,  1024},
{"IAP15F2K61S2"      , 0xF449, PROTOCOL_STC15B, 65536, 62464,     0},
{"IRC15F2K63S2"      , 0xF44A, PROTOCOL_STC15B, 65536, 65024,     0},
{"U7-5V"             , 0xF44B, PROTOCOL_UNSUPP, 65536, 62464,     0},
{"U8-5V"             , 0xF44C, PROTOCOL_UNSUPP, 65536, 62464,     0},
{"IAP15F413AD"       , 0xF44D, PROTOCOL_UNSUPP, 65536, 13312,     0},
{"STC15F1K08AS"      , 0xF451, PROTOCOL_STC15B, 65536,  8192, 54272},
{"STC15F1K16AS"      , 0xF452, PROTOCOL_STC15B, 65536, 16384, 46080},
{"STC15F1K24AS"      , 0xF453, PROTOCOL_STC15B, 65536, 24576, 37888},
{"STC15F1K32AS"      , 0xF454, PROTOCOL_STC15B, 65536, 32768, 29696},
{"STC15F1K40AS"      , 0xF455, PROTOCOL_STC15B, 65536, 40960, 21504},
{"STC15F1K48AS"      , 0xF456, PROTOCOL_STC15B, 65536, 49152, 13312},
{"STC15F1K56AS"      , 0xF457, PROTOCOL_STC15B, 65536, 57344,  5120},
{"STC15F1K60AS"      , 0xF458, PROTOCOL_STC15B, 65536, 61440,  1024},
{"IAP15F2K61AS"      , 0xF459, PROTOCOL_STC15B, 65536, 62464,     0},
{"IRC15F2K63AS"      , 0xF45A, PROTOCOL_STC15B, 65536, 65024,     0},
{"STC15F1K08S"       , 0xF461, PROTOCOL_STC15B, 65536,  8192, 54272},
{"STC15F1K16S"       , 0xF462, PROTOCOL_STC15B, 65536, 16384, 46080},
{"STC15F1K24S"       , 0xF463, PROTOCOL_STC15B, 65536, 24576, 37888},
{"STC15F1K32S"       , 0xF464, PROTOCOL_STC15B, 65536, 32768, 29696},
{"STC15F1K40S"       , 0xF465, PROTOCOL_STC15B, 65536, 40960, 21504},
{"STC15F1K48S"       , 0xF466, PROTOCOL_STC15B, 65536, 49152, 13312},
{"STC15F1K56S"       , 0xF467, PROTOCOL_STC15B, 65536, 57344,  5120},
{"STC15F1K60S"       , 0xF468, PROTOCOL_STC15B, 65536, 61440,  1024},
{"IAP15F2K61S"       , 0xF469, PROTOCOL_UNSUPP, 65536, 62464,     0},
{"IRC15F2K63S"       , 0xF46A, PROTOCOL_UNSUPP, 65536, 65024,     0},
{"IRC15L1K63S2"      , 0xF480, PROTOCOL_UNSUPP, 65536, 65024,     0},
{"STC15L2K08S2"      , 0xF481, PROTOCOL_UNSUPP, 65536,  8192, 54272},
{"STC15L2K16S2"      , 0xF482, PROTOCOL_UNSUPP, 65536, 16384, 46080},
{"STC15L2K24S2"      , 0xF483, PROTOCOL_UNSUPP, 65536, 24576, 37888},
{"STC15L2K32S2"      , 0xF484, PROTOCOL_UNSUPP, 65536, 32768, 29696},
{"STC15L2K40S2"      , 0xF485, PROTOCOL_UNSUPP, 65536, 40960, 21504},
{"STC15L2K48S2"      , 0xF486, PROTOCOL_UNSUPP, 65536, 49152, 13312},
{"STC15L2K56S2"      , 0xF487, PROTOCOL_UNSUPP, 65536, 57344,  5120},
{"STC15L2K60S2"      , 0xF488, PROTOCOL_UNSUPP, 65536, 61440,  1024},
{"IAP15L1K61S2"      , 0xF489, PROTOCOL_UNSUPP, 65536, 62464,     0},
{"STC15L404AD"       , 0xF48A, PROTOCOL_UNSUPP, 65536,  4096,  9216},
{"STC15L408AD"       , 0xF48B, PROTOCOL_UNSUPP, 65536,  8192,  5120},
{"STC15L412AD"       , 0xF48C, PROTOCOL_UNSUPP, 65536, 12288,  1024},
{"IRC15L1K63AS"      , 0xF490, PROTOCOL_UNSUPP, 65536, 65024,     0},
{"STC15L2K08AS"      , 0xF491, PROTOCOL_UNSUPP, 65536,  8192, 54272},
{"STC15L2K16AS"      , 0xF492, PROTOCOL_UNSUPP, 65536, 16384, 46080},
{"STC15L2K24AS"      , 0xF493, PROTOCOL_UNSUPP, 65536, 24576, 37888},
{"STC15L2K32AS"      , 0xF494, PROTOCOL_UNSUPP, 65536, 32768, 29696},
{"STC15L2K40AS"      , 0xF495, PROTOCOL_UNSUPP, 65536, 40960, 21504},
{"STC15L2K48AS"      , 0xF496, PROTOCOL_UNSUPP, 65536, 49152, 13312},
{"STC15L2K56AS"      , 0xF497, PROTOCOL_UNSUPP, 65536, 57344,  5120},
{"STC15L2K60AS"      , 0xF498, PROTOCOL_UNSUPP, 65536, 61440,  1024},
{"IAP15L1K61AS"      , 0xF499, PROTOCOL_UNSUPP, 65536, 62464,     0},
{"IRC15L1K63S"       , 0xF4A0, PROTOCOL_UNSUPP, 65536, 65024,     0},
{"STC15L2K08S"       , 0xF4A1, PROTOCOL_UNSUPP, 65536,  8192, 54272},
{"STC15L2K16S"       , 0xF4A2, PROTOCOL_UNSUPP, 65536, 16384, 46080},
{"STC15L2K24S"       , 0xF4A3, PROTOCOL_UNSUPP, 65536, 24576, 37888},
{"STC15L2K32S"       , 0xF4A4, PROTOCOL_UNSUPP, 65536, 32768, 29696},
{"STC15L2K40S"       , 0xF4A5, PROTOCOL_UNSUPP, 65536, 40960, 21504},
{"STC15L2K48S"       , 0xF4A6, PROTOCOL_UNSUPP, 65536, 49152, 13312},
{"STC15L2K56S"       , 0xF4A7, PROTOCOL_UNSUPP, 65536, 57344,  5120},
{"STC15L2K60S"       , 0xF4A8, PROTOCOL_UNSUPP, 65536, 61440,  1024},
{"IAP15L1K61S"       , 0xF4A9, PROTOCOL_UNSUPP, 65536, 62464,     0},
{"STC15L1K08S2"      , 0xF4C1, PROTOCOL_UNSUPP, 65536,  8192, 54272},
{"STC15L1K16S2"      , 0xF4C2, PROTOCOL_UNSUPP, 65536, 16384, 46080},
{"STC15L1K24S2"      , 0xF4C3, PROTOCOL_UNSUPP, 65536, 24576, 37888},
{"STC15L1K32S2"      , 0xF4C4, PROTOCOL_UNSUPP, 65536, 32768, 29696},
{"STC15L1K40S2"      , 0xF4C5, PROTOCOL_UNSUPP, 65536, 40960, 21504},
{"STC15L1K48S2"      , 0xF4C6, PROTOCOL_UNSUPP, 65536, 49152, 13312},
{"STC15L1K56S2"      , 0xF4C7, PROTOCOL_UNSUPP, 65536, 57344,  5120},
{"STC15L1K60S2"      , 0xF4C8, PROTOCOL_UNSUPP, 65536, 61440,  1024},
{"IAP15L2K61S2"      , 0xF4C9, PROTOCOL_UNSUPP, 65536, 62464,     0},
{"IRC15L2K63S2"      , 0xF4CA, PROTOCOL_UNSUPP, 65536, 65024,     0},
{"U7-3V"             , 0xF4CB, PROTOCOL_UNSUPP, 65536, 62464,     0},
{"U8-3V"             , 0xF4CC, PROTOCOL_UNSUPP, 65536, 62464,     0},
{"IAP15L413AD"       , 0xF4CD, PROTOCOL_UNSUPP, 65536, 13312,     0},
{"STC15L1K08AS"      , 0xF4D1, PROTOCOL_UNSUPP, 65536,  8192, 54272},
{"STC15L1K16AS"      , 0xF4D2, PROTOCOL_UNSUPP, 65536, 16384, 46080},
{"STC15L1K24AS"      , 0xF4D3, PROTOCOL_UNSUPP, 65536, 24576, 37888},
{"STC15L1K32AS"      , 0xF4D4, PROTOCOL_UNSUPP, 65536, 32768, 29696},
{"STC15L1K40AS"      , 0xF4D5, PROTOCOL_UNSUPP, 65536, 40960, 21504},
{"STC15L1K48AS"      , 0xF4D6, PROTOCOL_UNSUPP, 65536, 49152, 13312},
{"STC15L1K56AS"      , 0xF4D7, PROTOCOL_UNSUPP, 65536, 57344,  5120},
{"STC15L1K60AS"      , 0xF4D8, PROTOCOL_UNSUPP, 65536, 61440,  1024},
{"IAP15L2K61AS"      , 0xF4D9, PROTOCOL_UNSUPP, 65536, 62464,     0},
{"IRC15L2K63AS"      , 0xF4DA, PROTOCOL_UNSUPP, 65536, 65024,     0},
{"STC15L1K08S"       , 0xF4E1, PROTOCOL_UNSUPP, 65536,  8192, 54272},
{"STC15L1K16S"       , 0xF4E2, PROTOCOL_UNSUPP, 65536, 16384, 46080},
{"STC15L1K24S"       , 0xF4E3, PROTOCOL_UNSUPP, 65536, 24576, 37888},
{"STC15L1K32S"       , 0xF4E4, PROTOCOL_UNSUPP, 65536, 32768, 29696},
{"STC15L1K40S"       , 0xF4E5, PROTOCOL_UNSUPP, 65536, 40960, 21504},
{"STC15L1K48S"       , 0xF4E6, PROTOCOL_UNSUPP, 65536, 49152, 13312},
{"STC15L1K56S"       , 0xF4E7, PROTOCOL_UNSUPP, 65536, 57344,  5120},
{"STC15L1K60S"       , 0xF4E8, PROTOCOL_UNSUPP, 65536, 61440,  1024},
{"IAP15L2K61S"       , 0xF4E9, PROTOCOL_UNSUPP, 65536, 62464,     0},
{"IRC15L2K63S"       , 0xF4EA, PROTOCOL_UNSUPP, 65536, 65024,     0},
{"STC15W101SW"       , 0xF501, PROTOCOL_STC15B,  8192,  1024,  4096},
{"STC15W102SW"       , 0xF502, PROTOCOL_STC15B,  8192,  2048,  3072},
{"STC15W103SW"       , 0xF503, PROTOCOL_STC15B,  8192,  3072,  2048},
{"STC15W104SW"       , 0xF504, PROTOCOL_STC15B,  8192,  4096,  1024},
{"STC15W101S"        , 0xF508, PROTOCOL_STC15B,  8192,  1024,  4096},
{"STC15W102S"        , 0xF50A, PROTOCOL_STC15B,  8192,  2048,  3072},
{"STC15W103S"        , 0xF50B, PROTOCOL_STC15B,  8192,  3072,  2048},
{"STC15W104S"        , 0xF50C, PROTOCOL_STC15B,  8192,  4096,  1024},
{"STC15W201S"        , 0xF511, PROTOCOL_STC15B,  8192,  1024,  4096},
{"STC15W202S"        , 0xF512, PROTOCOL_STC15B,  8192,  2048,  3072},
{"STC15W203S"        , 0xF513, PROTOCOL_STC15B,  8192,  3072,  2048},
{"STC15W204S"        , 0xF514, PROTOCOL_STC15B,  8192,  4096,  1024},
{"STC15W1K16S"       , 0xF516, PROTOCOL_STC15B, 32768, 16384, 13312},
{"STC15W1K24S"       , 0xF517, PROTOCOL_STC15B, 32768, 24576,  5120},
{"STC15W404S"        , 0xF519, PROTOCOL_STC15B, 16384,  4096,  9216},
{"STC15W408S"        , 0xF51A, PROTOCOL_STC15B, 16384,  8192,  5120},
{"STC15W410S"        , 0xF51B, PROTOCOL_STC15B, 16384, 10240,  3072},
{"STC15W412S"        , 0xF51C, PROTOCOL_STC15B, 16384, 12288,  1024},
{"STC15W404AS"       , 0xF51E, PROTOCOL_STC15B, 16384,  4096,  9216},
{"STC15W408AS"       , 0xF51F, PROTOCOL_STC15B, 16384,  8192,  5120},
{"STC15W410AS"       , 0xF520, PROTOCOL_STC15B, 16384, 10240,  3072},
{"STC15W412AS"       , 0xF521, PROTOCOL_STC15B, 16384, 12288,  1024},
{"STC15W4K16S4"      , 0xF523, PROTOCOL_STC15B, 65536, 16384, 44032},
{"STC15W4K24S4"      , 0xF524, PROTOCOL_STC15B, 65536, 24576, 35840},
{"STC15W4K32S4"      , 0xF525, PROTOCOL_STC15B, 65536, 32768, 27648},
{"STC15W4K40S4"      , 0xF526, PROTOCOL_STC15B, 65536, 40960, 19456},
{"STC15W4K48S4"      , 0xF527, PROTOCOL_STC15B, 65536, 49152, 11264},
{"STC15W4K56S4"      , 0xF528, PROTOCOL_STC15B, 65536, 57344,  3072},
{"STC15W401AS"       , 0xF52A, PROTOCOL_STC15B, 16384,  1024, 12288},
{"STC15W402AS"       , 0xF52B, PROTOCOL_STC15B, 16384,  2048, 11264},
{"STC15W1K08PWM"     , 0xF52D, PROTOCOL_UNSUPP, 65536,  8192, 52224},
{"STC15W1K16PWM"     , 0xF52E, PROTOCOL_UNSUPP, 65536, 16384, 44032},
{"STC15W1K20S"       , 0xF52F, PROTOCOL_UNSUPP, 65536, 20480, 39936},
{"STC15W2K32S2"      , 0xF530, PROTOCOL_UNSUPP, 65536, 32768, 27648},
{"STC15W2K48S2"      , 0xF531, PROTOCOL_UNSUPP, 65536, 49152, 11264},
{"STC15W2K32AS"      , 0xF532, PROTOCOL_UNSUPP, 65536, 32768, 27648},
{"STC15W2K48AS"      , 0xF533, PROTOCOL_UNSUPP, 65536, 49152, 11264},
{"STC15W1K20AS"      , 0xF534, PROTOCOL_UNSUPP, 65536, 20480, 39936},
{"STC15W1K32AS"      , 0xF535, PROTOCOL_UNSUPP, 65536, 32768, 27648},
{"STC15W1K48AS"      , 0xF536, PROTOCOL_UNSUPP, 65536, 49152, 11264},
{"IAP15W105SW"       , 0xF545, PROTOCOL_UNSUPP,  8192,  5120,     0},
{"IAP15W105S"        , 0xF54D, PROTOCOL_UNSUPP,  8192,  5120,     0},
{"IAP15W205S"        , 0xF555, PROTOCOL_UNSUPP,  8192,  5120,     0},
{"IRC15W207S"        , 0xF556, PROTOCOL_UNSUPP,  8192,  7680,     0},
{"IAP15W1K29S"       , 0xF558, PROTOCOL_UNSUPP, 32768, 29696,     0},
{"IRC15W1K31S"       , 0xF559, PROTOCOL_UNSUPP, 32768, 32256,     0},
{"IAP15W413S"        , 0xF55D, PROTOCOL_UNSUPP, 16384, 13312,     0},
{"IRC15W415S"        , 0xF55E, PROTOCOL_UNSUPP, 16384, 15872,     0},
{"JX15W415S"         , 0xF55F, PROTOCOL_UNSUPP, 16384, 15872,     0},
{"IAP15W413AS"       , 0xF562, PROTOCOL_UNSUPP, 16384, 13312,     0},
{"IRC15W415AS"       , 0xF563, PROTOCOL_UNSUPP, 16384, 15872,     0},
{"IAP15W4K58S4"      , 0xF569, PROTOCOL_UNSUPP, 65536, 59392,     0},
{"IAP15W4K61S4"      , 0xF56A, PROTOCOL_UNSUPP, 65536, 62464,     0},
{"IRC15W4K63S4"      , 0xF56B, PROTOCOL_UNSUPP, 65536, 65024,     0},
{"U8W"               , 0xF56C, PROTOCOL_UNSUPP, 65536, 62464,     0},
{"IAP15W4K58S4-Stu"  , 0xF56D, PROTOCOL_UNSUPP, 65536, 59392,     0},
{"STC15U4K16S4"      , 0xF580, PROTOCOL_UNSUPP, 65536, 16384, 44032},
{"STC15U4K24S4"      , 0xF581, PROTOCOL_UNSUPP, 65536, 24576, 35840},
{"STC15U4K32S4"      , 0xF582, PROTOCOL_UNSUPP, 65536, 32768, 27648},
{"STC15U4K40S4"      , 0xF583, PROTOCOL_UNSUPP, 65536, 40960, 19456},
{"STC15U4K48S4"      , 0xF584, PROTOCOL_UNSUPP, 65536, 49152, 11264},
{"STC15U4K56S4"      , 0xF585, PROTOCOL_UNSUPP, 65536, 57344,  3072},
{"STC15H4K08S4"      , 0xF601, PROTOCOL_UNSUPP, 65536,  8192, 57344},
{"STC15H4K16S4"      , 0xF602, PROTOCOL_UNSUPP, 65536, 16384, 49152},
{"STC15H4K24S4"      , 0xF603, PROTOCOL_UNSUPP, 65536, 24576, 40960},
{"STC15H4K32S4"      , 0xF604, PROTOCOL_UNSUPP, 65536, 32768, 32768},
{"STC15H4K40S4"      , 0xF605, PROTOCOL_UNSUPP, 65536, 40960, 24576},
{"STC15H4K48S4"      , 0xF606, PROTOCOL_UNSUPP, 65536, 49152, 16384},
{"STC15H4K56S4"      , 0xF607, PROTOCOL_UNSUPP, 65536, 57344,  8192},
{"STC15H4K64S4"      , 0xF608, PROTOCOL_UNSUPP, 65536, 65024,   512},
{"STC8F8K08S4A12"    , 0xF611, PROTOCOL_STC8AF, 65536,  8192, 57344},
{"STC8F8K16S4A12"    , 0xF612, PROTOCOL_STC8AF, 65536, 16384, 49152},
{"STC8F8K24S4A12"    , 0xF613, PROTOCOL_STC8AF, 65536, 24576, 40960},
{"STC8F8K32S4A12"    , 0xF614, PROTOCOL_STC8AF, 65536, 32768, 32768},
{"STC8F8K40S4A12"    , 0xF615, PROTOCOL_STC8AF, 65536, 40960, 24576},
{"STC8F8K48S4A12"    , 0xF616, PROTOCOL_STC8AF, 65536, 49152, 16384},
{"STC8F8K56S4A12"    , 0xF617, PROTOCOL_STC8AF, 65536, 57344,  8192},
{"STC8F8K64S4A12"    , 0xF618, PROTOCOL_STC8AF, 65536, 65024,   512},
{"STC8F8K60S4A12"    , 0xF619, PROTOCOL_STC8AF, 65536, 61440,  4096},
{"STC8A8K08S4A12"    , 0xF621, PROTOCOL_STC8AF, 65536,  8192, 57344},
{"STC8A8K16S4A12"    , 0xF622, PROTOCOL_STC8AF, 65536, 16384, 49152},
{"STC8A8K24S4A12"    , 0xF623, PROTOCOL_STC8AF, 65536, 24576, 40960},
{"STC8A8K32S4A12"    , 0xF624, PROTOCOL_STC8AF, 65536, 32768, 32768},
{"STC8A8K40S4A12"    , 0xF625, PROTOCOL_STC8AF, 65536, 40960, 24576},
{"STC8A8K48S4A12"    , 0xF626, PROTOCOL_STC8AF, 65536, 49152, 16384},
{"STC8A8K56S4A12"    , 0xF627, PROTOCOL_STC8AF, 65536, 57344,  8192},
{"STC8A8K64S4A12"    , 0xF628, PROTOCOL_STC8AF, 65536, 65024,   512},
{"STC8A8K60S4A12"    , 0xF629, PROTOCOL_STC8AF, 65536, 61440,  4096},
{"STC8F2K08S4"       , 0xF631, PROTOCOL_STC8AF, 65536,  8192, 57344},
{"STC8F2K16S4"       , 0xF632, PROTOCOL_STC8AF, 65536, 16384, 49152},
{"STC8F2K24S4"       , 0xF633, PROTOCOL_STC8AF, 65536, 24576, 40960},
{"STC8F2K32S4"       , 0xF634, PROTOCOL_STC8AF, 65536, 32768, 32768},
{"STC8F2K40S4"       , 0xF635, PROTOCOL_STC8AF, 65536, 40960, 24576},
{"STC8F2K48S4"       , 0xF636, PROTOCOL_STC8AF, 65536, 49152, 16384},
{"STC8F2K56S4"       , 0xF637, PROTOCOL_STC8AF, 65536, 57344,  8192},
{"STC8F2K64S4"       , 0xF638, PROTOCOL_STC8AF, 65536, 65024,   512},
{"STC8F2K60S4"       , 0xF639, PROTOCOL_STC8AF, 65536, 61440,  4096},
{"STC8F2K08S2"       , 0xF641, PROTOCOL_STC8AF, 65536,  8192, 57344},
{"STC8F2K16S2"       , 0xF642, PROTOCOL_STC8AF, 65536, 16384, 49152},
{"STC8F2K24S2"       , 0xF643, PROTOCOL_STC8AF, 65536, 24576, 40960},
{"STC8F2K32S2"       , 0xF644, PROTOCOL_STC8AF, 65536, 32768, 32768},
{"STC8F2K40S2"       , 0xF645, PROTOCOL_STC8AF, 65536, 40960, 24576},
{"STC8F2K48S2"       , 0xF646, PROTOCOL_STC8AF, 65536, 49152, 16384},
{"STC8F2K56S2"       , 0xF647, PROTOCOL_STC8AF, 65536, 57344,  8192},
{"STC8F2K64S2"       , 0xF648, PROTOCOL_STC8AF, 65536, 65024,   512},
{"STC8F2K60S2"       , 0xF649, PROTOCOL_STC8AF, 65536, 61440,  4096},
{"STC8A4K08S2A12"    , 0xF651, PROTOCOL_STC8AF, 65536,  8192, 57344},
{"STC8A4K16S2A12"    , 0xF652, PROTOCOL_STC8AF, 65536, 16384, 49152},
{"STC8A4K24S2A12"    , 0xF653, PROTOCOL_STC8AF, 65536, 24576, 40960},
{"STC8A4K32S2A12"    , 0xF654, PROTOCOL_STC8AF, 65536, 32768, 32768},
{"STC8A4K40S2A12"    , 0xF655, PROTOCOL_STC8AF, 65536, 40960, 24576},
{"STC8A4K48S2A12"    , 0xF656, PROTOCOL_STC8AF, 65536, 49152, 16384},
{"STC8A4K56S2A12"    , 0xF657, PROTOCOL_STC8AF, 65536, 57344,  8192},
{"STC8A4K64S2A12"    , 0xF658, PROTOCOL_STC8AF, 65536, 65024,   512},
{"STC8A4K60S2A12"    , 0xF659, PROTOCOL_STC8AF, 65536, 61440,  4096},
{"STC8F1K02S2"       , 0xF661, PROTOCOL_STC8AF, 20480,  2048, 10240},
{"STC8F1K04S2"       , 0xF662, PROTOCOL_STC8AF, 20480,  4096,  8192},
{"STC8F1K06S2"       , 0xF663, PROTOCOL_STC8AF, 20480,  6144,  6144},
{"STC8F1K08S2"       , 0xF664, PROTOCOL_STC8AF, 20480,  8192,  4096},
{"STC8F1K10S2"       , 0xF665, PROTOCOL_STC8AF, 20480, 10240,  2048},
{"STC8F1K12S2"       , 0xF666, PROTOCOL_STC8AF, 20480, 12288,     0},
{"STC8F1K17S2"       , 0xF667, PROTOCOL_STC8AF, 20480, 17408,     0},
{"STC8F1K02"         , 0xF671, PROTOCOL_STC8AF, 20480,  2048, 10240},
{"STC8F1K04"         , 0xF672, PROTOCOL_STC8AF, 20480,  4096,  8192},
{"STC8F1K06"         , 0xF673, PROTOCOL_STC8AF, 20480,  6144,  6144},
{"STC8F1K08"         , 0xF674, PROTOCOL_STC8AF, 20480,  8192,  4096},
{"STC8F1K10"         , 0xF675, PROTOCOL_STC8AF, 20480, 10240,  2048},
{"STC8F1K12"         , 0xF676, PROTOCOL_STC8AF, 20480, 12288,     0},
{"STC8F1K17"         , 0xF677, PROTOCOL_STC8AF, 20480, 17408,     0},
{"STC8C1K02"         , 0xF701, PROTOCOL_STC8AF, 20480,  2048, 10240},
{"STC8C1K04"         , 0xF702, PROTOCOL_STC8AF, 20480,  4096,  8192},
{"STC8C1K06"         , 0xF703, PROTOCOL_STC8AF, 20480,  6144,  6144},
{"STC8C1K08"         , 0xF704, PROTOCOL_STC8AF, 20480,  8192,  4096},
{"STC8C1K10"         , 0xF705, PROTOCOL_STC8AF, 20480, 10240,  2048},
{"STC8C1K12"         , 0xF706, PROTOCOL_STC8AF, 20480, 12288,     0},
{"GX8S003"           , 0xF714, PROTOCOL_UNSUPP, 20480,  8192,  4096},
{"GX8S012"           , 0xF716, PROTOCOL_UNSUPP, 20480, 12288,     0},
{"STC8H1K16"         , 0xF721, PROTOCOL_STC8GH, 36864, 16384, 12288},
{"STC8H1K20"         , 0xF722, PROTOCOL_STC8GH, 36864, 20480,  8192},
{"STC8H1K24"         , 0xF723, PROTOCOL_STC8GH, 36864, 24576,  4096},
{"STC8H1K28"         , 0xF724, PROTOCOL_STC8GH, 36864, 28672,     0},
{"STC8H1K33"         , 0xF725, PROTOCOL_STC8GH, 36864, 33792,     0},
{"STC8H1K02"         , 0xF731, PROTOCOL_STC8GH, 20480,  2048, 10240},
{"STC8H1K04"         , 0xF732, PROTOCOL_STC8GH, 20480,  4096,  8192},
{"STC8H1K06"         , 0xF733, PROTOCOL_STC8GH, 20480,  6144,  6144},
{"STC8H1K08"         , 0xF734, PROTOCOL_STC8GH, 20480,  8192,  4096},
{"STC8H1K10"         , 0xF735, PROTOCOL_STC8GH, 20480, 10240,  2048},
{"STC8H1K12"         , 0xF736, PROTOCOL_STC8GH, 20480, 12288,     0},
{"STC8H1K17"         , 0xF737, PROTOCOL_STC8GH, 20480, 17408,     0},
{"STC8H3K16S4"       , 0xF741, PROTOCOL_STC8GH, 65536, 16384, 49152},
{"STC8H3K32S4"       , 0xF742, PROTOCOL_STC8GH, 65536, 32768, 32768},
{"STC8H3K60S4"       , 0xF743, PROTOCOL_STC8GH, 65536, 61440,  4096},
{"STC8H3K64S4"       , 0xF744, PROTOCOL_STC8GH, 65536, 65024,   512},
{"STC8H3K48S4"       , 0xF745, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8H3K16S2"       , 0xF749, PROTOCOL_STC8GH, 65536, 16384, 49152},
{"STC8H3K32S2"       , 0xF74A, PROTOCOL_STC8GH, 65536, 32768, 32768},
{"STC8H3K60S2"       , 0xF74B, PROTOCOL_STC8GH, 65536, 61440,  4096},
{"STC8H3K64S2"       , 0xF74C, PROTOCOL_STC8GH, 65536, 65024,   512},
{"STC8H3K48S2"       , 0xF74D, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8G1K02-20/16P"  , 0xF751, PROTOCOL_STC8GH, 20480,  2048, 10240},
{"STC8G1K04-20/16P"  , 0xF752, PROTOCOL_STC8GH, 20480,  4096,  8192},
{"STC8G1K06-20/16P"  , 0xF753, PROTOCOL_STC8GH, 20480,  6144,  6144},
{"STC8G1K08-20/16P"  , 0xF754, PROTOCOL_STC8GH, 20480,  8192,  4096},
{"STC8G1K10-20/16P"  , 0xF755, PROTOCOL_STC8GH, 20480, 10240,  2048},
{"STC8G1K12-20/16P"  , 0xF756, PROTOCOL_STC8GH, 20480, 12288,     0},
{"STC8G1K17-20/16P"  , 0xF757, PROTOCOL_STC8GH, 20480, 17408,     0},
{"STC8G2K16S4"       , 0xF761, PROTOCOL_STC8GH, 65536, 16384, 49152},
{"STC8G2K32S4"       , 0xF762, PROTOCOL_STC8GH, 65536, 32768, 32768},
{"STC8G2K60S4"       , 0xF763, PROTOCOL_STC8GH, 65536, 61440,  4096},
{"STC8G2K64S4"       , 0xF764, PROTOCOL_STC8GH, 65536, 65024,   512},
{"STC8G2K48S4"       , 0xF765, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8G2K16S2"       , 0xF769, PROTOCOL_STC8GH, 65536, 16384, 49152},
{"STC8G2K32S2"       , 0xF76A, PROTOCOL_STC8GH, 65536, 32768, 32768},
{"STC8G2K60S2"       , 0xF76B, PROTOCOL_STC8GH, 65536, 61440,  4096},
{"STC8G2K64S2"       , 0xF76C, PROTOCOL_STC8GH, 65536, 65024,   512},
{"STC8G2K48S2"       , 0xF76D, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8G1K02T"        , 0xF771, PROTOCOL_STC8GH, 20480,  2048, 10240},
{"STC8G1K04T"        , 0xF772, PROTOCOL_STC8GH, 20480,  4096,  8192},
{"STC8G1K06T"        , 0xF773, PROTOCOL_STC8GH, 20480,  6144,  6144},
{"STC8G1K08T"        , 0xF774, PROTOCOL_STC8GH, 20480,  8192,  4096},
{"STC8G1K10T"        , 0xF775, PROTOCOL_STC8GH, 20480, 10240,  2048},
{"STC8G1K12T"        , 0xF776, PROTOCOL_STC8GH, 20480, 12288,     0},
{"STC8G1K17T"        , 0xF777, PROTOCOL_STC8GH, 20480, 17408,     0},
{"STC8H8K16U"        , 0xF781, PROTOCOL_STC8GH, 65536, 16384, 49152},
{"STC8H8K32U"        , 0xF782, PROTOCOL_STC8GH, 65536, 32768, 32768},
{"STC8H8K60U"        , 0xF783, PROTOCOL_STC8GH, 65536, 61440,  4096},
{"STC8H8K64U"        , 0xF784, PROTOCOL_STC8GH, 65536, 65024,   512},
{"STC8H8K48U"        , 0xF785, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8G1K02A-8PIN"   , 0xF791, PROTOCOL_STC8GH, 20480,  2048, 10240},
{"STC8G1K04A-8PIN"   , 0xF792, PROTOCOL_STC8GH, 20480,  4096,  8192},
{"STC8G1K06A-8PIN"   , 0xF793, PROTOCOL_STC8GH, 20480,  6144,  6144},
{"STC8G1K08A-8PIN"   , 0xF794, PROTOCOL_STC8GH, 20480,  8192,  4096},
{"STC8G1K10A-8PIN"   , 0xF795, PROTOCOL_STC8GH, 20480, 10240,  2048},
{"STC8G1K12A-8PIN"   , 0xF796, PROTOCOL_STC8GH, 20480, 12288,     0},
{"STC8G1K17A-8PIN"   , 0xF797, PROTOCOL_STC8GH, 20480, 17408,     0},
{"STC8G1K02-8PIN"    , 0xF7A1, PROTOCOL_STC8GH, 20480,  2048, 10240},
{"STC8G1K04-8PIN"    , 0xF7A2, PROTOCOL_STC8GH, 20480,  4096,  8192},
{"STC8G1K06-8PIN"    , 0xF7A3, PROTOCOL_STC8GH, 20480,  6144,  6144},
{"STC8G1K08-8PIN"    , 0xF7A4, PROTOCOL_STC8GH, 20480,  8192,  4096},
{"STC8G1K10-8PIN"    , 0xF7A5, PROTOCOL_STC8GH, 20480, 10240,  2048},
{"STC8G1K12-8PIN"    , 0xF7A6, PROTOCOL_STC8GH, 20480, 12288,     0},
{"STC8G1K17-8PIN"    , 0xF7A7, PROTOCOL_STC8GH, 20480, 17408,     0},
{"STC12H1K04"        , 0xF7B0, PROTOCOL_UNSUPP, 36864,  4096, 24576},
{"STC12H1K08"        , 0xF7B1, PROTOCOL_UNSUPP, 36864,  8192, 20480},
{"STC12H1K12"        , 0xF7B2, PROTOCOL_UNSUPP, 36864, 12288, 16384},
{"STC12H1K16"        , 0xF7B3, PROTOCOL_UNSUPP, 36864, 16384, 12288},
{"STC12H1K20"        , 0xF7B4, PROTOCOL_UNSUPP, 36864, 20480,  8192},
{"STC12H1K24"        , 0xF7B5, PROTOCOL_UNSUPP, 36864, 24576,  4096},
{"STC12H1K28"        , 0xF7B6, PROTOCOL_UNSUPP, 36864, 28672,     0},
{"STC12H1K33"        , 0xF7B7, PROTOCOL_UNSUPP, 36864, 33792,     0},
{"STC8H2K16T"        , 0xF7C1, PROTOCOL_STC8GH, 65536, 16384, 49152},
{"STC8H2K32T"        , 0xF7C2, PROTOCOL_STC8GH, 65536, 32768, 32768},
{"STC8H2K60T"        , 0xF7C3, PROTOCOL_STC8GH, 65536, 61440,  4096},
{"STC8H2K64T"        , 0xF7C4, PROTOCOL_STC8GH, 65536, 65024,   512},
{"STC8H4K16TLR"      , 0xF7C9, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8H4K32TLR"      , 0xF7CA, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8H4K60TLR"      , 0xF7CB, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8H4K64TLR"      , 0xF7CC, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8H4K48TLR"      , 0xF7CD, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8C2K16S4"       , 0xF7D1, PROTOCOL_STC8GH, 65536, 16384, 49152},
{"STC8C2K32S4"       , 0xF7D2, PROTOCOL_STC8GH, 65536, 32768, 32768},
{"STC8C2K60S4"       , 0xF7D3, PROTOCOL_STC8GH, 65536, 61440,  4096},
{"STC8C2K64S4"       , 0xF7D4, PROTOCOL_STC8GH, 65536, 65024,   512},
{"STC8C2K48S4"       , 0xF7D5, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8C2K16S2"       , 0xF7D9, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8C2K32S2"       , 0xF7DA, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8C2K60S2"       , 0xF7DB, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8C2K64S2"       , 0xF7DC, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8C2K48S2"       , 0xF7DD, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8A8K16D4"       , 0xF7F1, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8A8K32D4"       , 0xF7F2, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8A8K60D4"       , 0xF7F3, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8A8K64D4"       , 0xF7F4, PROTOCOL_STC8GH, 65536, 65024,   512},
{"STC8A8K48D4"       , 0xF7F5, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8H4K16TLCD"     , 0xF811, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8H4K32TLCD"     , 0xF812, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8H4K60TLCD"     , 0xF813, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8H4K64TLCD"     , 0xF814, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8H4K48TLCD"     , 0xF815, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8H4K16LCD"      , 0xF821, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8H4K32LCD"      , 0xF822, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8H4K60LCD"      , 0xF823, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8H4K64LCD"      , 0xF824, PROTOCOL_STC8GH,     0,     0,     0},
{"STC8H4K48LCD"      , 0xF825, PROTOCOL_STC8GH,     0,     0,     0},
{"STC89C516RD/LV51"  , 0xFFFF, PROTOCOL_UNSUPP, 65536, 65536,     0},
};

const stc_model_t* model_lookup(uint16_t code)
{
    int size = ARRAY_SIZE(models);
    for (int i = 0; i < size; i++)
    {
        if (models[i].magic_code == code)
        {
            return &models[i];
        }
    }
    return 0;
}

const stc_protocol_t* protocol_lookup(uint16_t id)
{
    int size = ARRAY_SIZE(protocols);
    for (int i = 0; i < size; i++)
    {
        if (protocols[i].id == id)
        {
            return &protocols[i];
        }
    }
    return 0;
}
